java线程加上同步代码块 这样限制后 不是同一时刻只有一个线程在跑吗

java线程加上同步代码块这样限制后不是同一时刻只有一个线程在跑吗这样不是失去多线程的意义了吗... java线程加上同步代码块 这样限制后 不是同一时刻只有一个线程在跑吗 这样不是失去多线程的意义了吗 展开
 我来答
易建议
2016-06-21 · 喜欢分享的人都容易获得幸福感~
易建议
采纳数:344 获赞数:1342

向TA提问 私信TA
展开全部
一般只有需要多个线程共享的变量才需要加同步锁,这样保持了数据的一致性。
从微观上来看,即时不加同步代码块,同一时刻也只有一个线程在跑,只不过它们交替运行,间隔时间几乎可以忽略,所以看上去是同步的。同理加了同步代码块,只是增加了一个线程访问某一块的等待时间,这种等待时间几乎可以忽略不计,但是对数据的一致性来说又是非常重要的。
不知道这么说楼主能不能理解。
更多追问追答
追问
那代码块里的程序 是他等待时间到了再执行其他的线程  还是不考虑他的睡眠结束与否只考虑当前线程执行是否完毕。  另外线程的(同步)是不是对于cup单核还是多核来讲都一样,不同步的话最多可以同时进行当前核数数量的线程
那代码块里的程序 是他等待时间到了再执行其他的线程  还是不考虑他的睡眠结束与否只考虑当前线程执行是否完毕。  另外线程的(同步)是不是对于cup单核还是多核来讲都一样,不同步的话最多可以同时进行当前核数数量的线程
哎呀沃去33
2017-08-02 · TA获得超过3万个赞
知道小有建树答主
回答量:2.4万
采纳率:33%
帮助的人:1226万
展开全部
java中 synchronized同步处理后,代表该线程是同步的,即多线程访问时,无法同时有两个或以上线程进行访问。具体的原理是,当第一个线程进入该同步代码块之后,会暂时获得同步块的锁,当第二个线程进入时,由于第一个线程并未结束,同步代码块的锁没有释放,所以第二个线程进不来,达到只有一个线程在运行的目的。synchronized同步处理通常用于封装需要共享的可改变的数据,为了让数据更安全所使用的技术。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式