黑马程序员技术交流社区

标题: 同步唤醒机制跟单线程的问题 [打印本页]

作者: 黄治文    时间: 2011-9-27 00:33
标题: 同步唤醒机制跟单线程的问题
同步唤醒机制跟单线程执行程序有什么区别吗?操作同一份数据,而且线程之间通信,线程A休眠后,要等待线程B将其唤醒,而且在单元时间内只有一个线程在操作数据,这跟单线程有什么区别吗?而且在线程之间不断切换,是不是让CPU做更多的功,会不会导致效率降低啊
作者: 匿名    时间: 2011-9-27 00:52
打个比方,如果你在银行有一个账户,你可以用银行卡在取款机里取,也可以在网上银行消费,如果你在取款的同时,你女朋友正在用网银买衣服,那这时候如果你女朋友还在付款,钱还没扣掉的同时,你也在取款,这时候你就相当于在钱没被网银扣掉的情况下取得款,这样两次操作,相当于只被扣掉一次钱(也就是较晚完成操作的那一方的余款被当做最后的余款),这样银行不就不干了么。要是只能单线程的话,那相当于你只能通过取款机取钱,或者只能通过网银消费,这不是很郁闷么?
作者: 匿名    时间: 2011-9-27 06:49
不错,线程的切换,的确会占CPU资源的确会使CPU速率降低,因为进程是一个资源的拥有者,在创建、撤销、和钱换中,都会付出“较大的开销”(见操作系统课本(^_~))除非是多处理器,因为CPU有时钟频率,可以回忆一下微机原理实验的时候一下一下按按钮模仿的CLK时钟脉冲去执行机器命令。
         但是这跟你说的又有一毛钱的关系吗
         操作系统是多任务的,其内核通过进程控制块来感知线程的存在并加以控制,微观上是分时处理“串行”处理,但是我们还是需要“并行”!
         我们听歌的时候,打开QQ视频聊天会中断么,不会。当你关闭一个java编写的窗口,会在程序执行完才允许点击关闭吗,不会而是仍然可以有一个点击事件触发响应来中断程序。这就是并发的世界。
        因为我们需要并发,因为有时候甚至要多个进程合作完成同一个任务。有时候不同的进程要访问相同的资源(一个进程的不同线程,或者是不同进程的不同线程),进程之间需要通信,因此需要并发控制,同步唤醒机制什么更是不用说了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2