黑马程序员技术交流社区
标题:
多线程同步
[打印本页]
作者:
不抛弃不放弃
时间:
2013-11-15 10:27
标题:
多线程同步
本帖最后由 不抛弃不放弃 于 2013-11-15 10:46 编辑
线程同步 是不是只是效果上的,也就是说,比如一个cup,他在执行线程同步的话,是真正意义上的同步呢,还是他在快速的切换,达到同步的假象
作者:
王雨神
时间:
2013-11-15 10:41
对程序来讲就是CPU快速的切换,达到同步的假象。
java多线程执行过程是,是多个线程抢占执行权,谁抢到就先执行,抢不到的就先休息一会,等抢到了在执行。
java多线程访问同一个资源,存在安全问题,就必须加同步就是上锁嘛,一次只能有一个线程访问一个资源,这个线程访问完出来后,别的线程才有资格去访问,不然线程的切换。会造成安全隐患。毕老师用火车上的厕所解释:A上厕所后门反锁,其他人就进不去,等A出来后,其他人在抢占厕所。。某一段代码在这一时候只能被一个程序执行,
作者:
零下五度的水
时间:
2013-11-15 14:00
必然是不停的切换。
多核CPU可以多个进程同时执行,
但多个线程是包含在一个进程中的,
这个如果让各个核同时执行是不容易进行数据同步的
作者:
smileven
时间:
2013-11-15 21:51
多线程的目的是多个对象操作同一份数据。
这些操作有不同的业务逻辑,当然也就对数据的操作不同。所以为了避免线程安全问题,会对线程的操作加锁。
这样也就是一个线程操作数据,也就是使用CPU资源时,其他线程只能处于等待状态,也就是没有抢到CPU资源。
所以多线程其实也是CPU在进行快速的切换,达到同步的假象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2