说实话,太过分了,根本讲不完(笑
简单介绍一下,我会先讲基础的,再带一点深入的,搭配一些范例和文档,主要是让人看懂会用,至於更深入的知识,需要自己去翻文档,我就挖坑给你们跳
我的文章中不时会把整串的英文贴过来,只要有整串英文的建议一定要看,我会贴的情况有三种
为什麽要这麽麻烦呢?
文档连结
文档连结
android文档连结
官方blog
影片
等等
痾你知道里面有多少东西吗? 铁人赛的期间刚好我手边还有案子,时间不够,但讲讲基本知识还是够的,每篇我都会放一些资料来源和延伸阅读的文章,同时我会尽量不带原码,连结里同样有别人带着看原码的连结,还是蛮推荐去看的,毕竟不能只有我看过 要了解背後原理
全部文章会采动态更新方式,我会在看到解释更贴切或我有遗漏重要细节时,回来编辑之前的文章,也欢迎各位开发者指出我文章的错误或描述不足的地方
所以第一天也不能水过去,直接开始讲program, process, thread和coroutine吧
对第一点就是,请接受他们的英文名字,毕竟中文翻译後,可能会有翻译落差,名称不同等等情况,重点是我会搞混
program就是我们工程师平时开ide写的东西,在编译之後会转成机器语言,然後安装在装置的次级储存装置里面
更直白一点,你从play store载了一个app,他就会被安装在手机里,但还不会执行
在图形化介面Graphical User Interface,aka GUI,之中,大部分program会有一个Icon,就好比手机里,每个app都会有一个图示,但它并不是program,他只是一个launch icon,就好比说他是告诉系统,现在要执行哪个程序的按钮
补充,不是所有的program都会有icon
process也可称为application,当icon点击之後,Operate system,aka OS,会分配记忆体给program,而process是指已载入记忆体且可被执行的machine code
The term process (Job) refers to program code that has been loaded into a computer’s memory so that it can be executed by the central processing unit (CPU). A process can be described as an instance of a program running on a computer or as an entity that can be assigned to and executed on a processor. A program becomes a process when loaded into memory and thus is an active entity.
英文连结
中文连结1
中文连结2
中文连结3
我没有要冲字数,是中文的描述不同,只好去看英文的,中文有人说是已经执行的,有人说是还没执行的,但我们都知道cpu才是真正工作的地方,那从上面的英文来看,process是指在一台电脑里(running)运行的程序实体,或是可被指派给处理器操作的实体。
另外,关於process还有几个特点
已经了解了program和process,是时候讲讲thread了
一个process里面会有多个thread,每个thread可以完成一个或多个任务(功能),实际在处理任务的是在thread,process则是thread的容器,而同一个process里面的thread可以互享资源
以client来说,透过io thread,发出api请求,收到回覆後写入本地资料库,就是在io thread做多个任务
coroutine是甚麽?
有人说他是轻量级的线程,有人说他是用户态的线程,有人说他不是线程,而是协作式的组件
依我看,他既不是轻量级,也不是用户态,更不是组件,他就是一块绿豆糕
ㄚㄚ偏题了,其实coroutine就是一套官方提供的线程api,上面讲这麽多,coroutine就是一个线程框架 by.扔物线. GOOGLE认证讲师
尽管java有thread, executor, RxJava等等thread切换工具,但coroutine藉助了kotlin的语法,让coroutine用起来更加方便,而且能以看似同步的写法写出异步操作,後面29天都会在讲coroutine
连结统整:
如果想更深入了解这几个之间的概念,这两篇可以参考,我就不多加描述了
【恐龙】理解 Process & Thread
geeksforgeeks difference-between-program-and-process
>>: 【Day1】前言X动机X首款宠物约散Android平台APP
如果我们想要强迫传来的Prop是某种型态或是强迫某个Prop一定要被传入的话, 我们可以使用Prop...
添加中文字体 在安装matplotlib後,因为我们的资料内含有中文字,而matplotlib内建并...
本篇公开自身学会切版的秘密武器是...,及分享学习CSS当中最重要的css盒模型概念 昨天文章中我...
Conclusion 呼~到今天为止 9 天过去了,Libraries 之间的比较篇章也到今天告一...
终於也进入到尾声了,最後一章要介绍网格项目的分层与顺序。 z-index 分层 .item { z-...