黑马程序员技术交流社区
标题:
多线程安全问题
[打印本页]
作者:
王玉岩
时间:
2012-9-28 00:15
标题:
多线程安全问题
本帖最后由 王玉岩 于 2012-9-28 11:57 编辑
在毕老师讲解多线程安全问题的视频中就是关于打印出0,-1,-2票的时候所说的问题的原因:
当多条语句在操作同一个线程共享数据时
,一个线程对多条语句只执行了一部分,还没有执行完,
另一个线程参与进来执行。
导致共享数据的错误。
红色部分这句话应该怎么理解呢?怎么叫没执行完,那应该是什么样的一种状态呢?求解答
作者:
冯培军
时间:
2012-9-28 00:33
线程是操作系统调度运行的最小单元。一个程序(一个进程)可以有多个线程同时存在并运行。什么时候,哪个线程被分配到CPU来运行,是操作系统的事情。
如果机子上只有一个CPU,多个线程其实并不是真正同时运行的,只是操作系统调度分配给多个线程不同的CPU时间片,多个线程轮流得到CPU时间片,
给用户的感觉好像是多小线程同时在运行。
如果机子上有多个CPU,那2个线程很有可能真的是同时运行的。
线程被操作系统调度过程中,有2个基本的状态:
1. running (运行)
2. suspended (挂起);线程被挂起的时候,CPU时间片就不会分配到这个线程;
线程可以通过API明确地告诉操作系统,这个线程被挂起;操作系统也可能在背后挂起一个线程
作者:
钢伢仔
时间:
2012-9-28 00:40
顽强探索中!
作者:
叶征东
时间:
2012-9-28 01:41
本帖最后由 叶征东 于 2012-9-28 22:10 编辑
无标题3.jpg
(57.29 KB, 下载次数: 115)
下载附件
2012-9-28 22:10 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2