黑马程序员技术交流社区

标题: Java 中多线程同步是什么? 为什么要实现同步 [打印本页]

作者: 二月的雨    时间: 2014-11-22 18:27
标题: Java 中多线程同步是什么? 为什么要实现同步
Java 中多线程同步是什么? 为什么要实现同步。 既然要同步,为什么不用单线程?


作者: 连鹏飞    时间: 2014-11-22 18:59
为了解决多个线程对同一变量进行访问时可能发生的安全性问题
作者: 丑小子799    时间: 2014-11-22 19:06
多个线程访问同一数据,会出现安全性问题,所以使用同步。同步代码块,或者同步方法
作者: wf111sxwf    时间: 2014-11-22 22:15
   首先:cpu随机的不断在各个线程之间切换执行,当共享数据需要被多条语句执行时,很有可能在某条语句执行完以后但操作数据的目的还没有完成时挂起,cpu切换到其他线程执行,这时就会导致数据错误的问题发生,因此需要线程同步,使某段代码内每次只能允许有一个线程执行,保证数据安全。

第二个问题,为什么要使用多线程,比如当你的程序中涉及到多个 很多次数的循环时,如果是单线程的话,第一个循环不执行完,第二个循环就执行不到,所以你的程序运行一次效率会很低,而你把这些循环分别开启一个线程来执行的话,那么cpu会在他们之间来回切换执行,也就说的同时进行,那么 效率自然会高很多。  

作者: 曾勇    时间: 2014-11-23 00:00
想想火车站卖票实例吧,多个窗口卖票,是不是就需要多线程了,
但是只有一个共享数据,是不是就要同步一下啊
作者: huangkj    时间: 2014-11-23 00:12
同步是为了安全,防止系统出错




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