A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   1:因为单核cpu一个时间点只能运行一个线程,所以,单核cpu不存在线程并行的情况,多线程的程序运行在单核cpu下面,只能是串行,因此我认为多线程在这种情况下并不能提高cpu的使用效率(多线程在单核cpu下运行只能串行,这样子......其实和单线程使用效率差不多吧, 应该说更低,第二条接着说).
   2:设置同步块,限制多线程的运行. 在单核cpu运行的情况下,举2个实例化的例子(单线程和多线程),多线程:有一间屋子,2个人要进去做同一件事:整理房间,为了防止2个人同时进去把房间越弄越乱,设置了一道门,进去前必须拿到钥匙才能进去(这个就是同步锁),拿到钥匙的这个人去整理房间,整理完结束.
  另一种,单线程,也是整理屋子.同样的事情,只有一个人去做,那么就不需要额外的设置门和锁,因为不存在有人抢着做这件事,他可以直接进屋开始整理然后结束.可以各加一个循环,加强一下两者的区别.
  而单核cpu,即便是多线程,同一个时间点也只能执行一个线程(串行),如此,这时候使用多线程加同步块执行run()方法,反而会降低效率,因为同步块本身就要占用一定的cpu片段,这时候的多线程反而不如单线程.

                    综上:单核cpu运行加同步块的多线程,效率上是比单线程低的.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马