这系列的随手记用于记录下自己学习的点点滴滴,如果有错误的地方,请各位及时指正,谢谢。
多线程确实是一个会让人头疼的地方,如果这里没有弄清楚的话,那么常常会让人觉得逻辑混乱而搞不清楚状况。
首先,得清楚线程这东西究竟是个啥?
balabala~我们省略掉线程出现的那一长串历史原因。
我说下自己的理解,其实线程我把它理解成是一种轻量的进程(直接这样理解可能不是很严格,不过是为了方便自己理解)
它与进程的区别在于,进程拥有自己独立的资源,
而线程则是共享所在进程的资源(除自身堆栈外的),因此线程间的通讯比起进程通信明显容易了很多。
线程,进程调度——实际的调度方案与操作系统的具体实现有关(如windows和linux),有的是先进行进程调度,然后再线程调度。
有的操作系统是直接将线程作为最小的调度单位。
并发——在单核(同时不支持多线程)中,这个词就是浮云,CPU的利用率其实并没有实质提升,只是用了个障眼法,
通过CPU时间片调度来减少了程序操作的响应时间。
当然,在多核(或支持多线程)中,则是一种提升利用率的有效手段。
大概就想到这些,以后再慢慢编辑添加好了。
学习常会有错,请各位看官能及时指正,谢谢~
下一章:Java多线程随手记——各种锁