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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Java 中多线程同步是什么? 为什么要实现同步。 既然要同步,为什么不用单线程?

评分

参与人数 1技术分 +3 收起 理由
王维波老师 + 3 很有思想

查看全部评分

5 个回复

倒序浏览
为了解决多个线程对同一变量进行访问时可能发生的安全性问题
回复 使用道具 举报
多个线程访问同一数据,会出现安全性问题,所以使用同步。同步代码块,或者同步方法
回复 使用道具 举报
   首先:cpu随机的不断在各个线程之间切换执行,当共享数据需要被多条语句执行时,很有可能在某条语句执行完以后但操作数据的目的还没有完成时挂起,cpu切换到其他线程执行,这时就会导致数据错误的问题发生,因此需要线程同步,使某段代码内每次只能允许有一个线程执行,保证数据安全。

第二个问题,为什么要使用多线程,比如当你的程序中涉及到多个 很多次数的循环时,如果是单线程的话,第一个循环不执行完,第二个循环就执行不到,所以你的程序运行一次效率会很低,而你把这些循环分别开启一个线程来执行的话,那么cpu会在他们之间来回切换执行,也就说的同时进行,那么 效率自然会高很多。  
回复 使用道具 举报
想想火车站卖票实例吧,多个窗口卖票,是不是就需要多线程了,
但是只有一个共享数据,是不是就要同步一下啊
回复 使用道具 举报
同步是为了安全,防止系统出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马