java多线程中使用同步那它和单线程有什么区别?

如果在多线程中使用同步synchronized比如有100个线程,所有线程都要一个一个的执行,那这和单线程不是一样了吗?并且多线程同步的时候操作系统来回的检查锁的状态倒浪... 如果在多线程中使用同步synchronized 比如有100个线程,所有线程都要一个一个的执行,那这和单线程不是一样了吗?并且多线程同步的时候操作系统来回的检查锁的状态倒浪费了性能,我理解的是不是哪里不对啊,请知道的帮解答一下,还有就是关于同步有很多方法,是不是都一回事只要会一种就行啊 比如我就知道在run里 synchronized(obj)这样 展开
 我来答
jamxval
推荐于2017-11-27 · TA获得超过6822个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1428万
展开全部
线程同步是指当大家共用同一个东西的时候才有必要,使用资源一般只是在程序执行流程的某个环节,多数时间它们是在处理而不是操作资源,比如程序处理完数据后保存到磁盘就只是在保存时使用资源,而处理的时候不使用资源,我们同步仅对使用资源加锁,处理数据的部分是可以同时并行的,所以我们的桌面型操作系统允许多个任务同时运行,只是在访问磁盘时内部细节中加锁轮,当磁盘机械装置转到哪个扇区时就允许哪个程序来访问。

我们不能对所有的东西都用 synchronized,仅对有可能导致冲突和状态不一致的代码加 synchonized 来锁定这块区域,就是说进入这个块区域之前必须申请锁而且得到锁后运行时其它线程在它释放锁之前不能访问,如果其它线程当前还在处理数据并没有打算使用这个资源的时候就可以在另一个线程中并行运行。
匿名用户
2014-11-24
展开全部
线程同时运行,只不过对象要保持同步
比如你到火车站买票,售票窗口有很多,但一张票只能一个人购买,总不能说全国人民只到一个窗口排队买票吧
java同步方法主要是工具包concurrent下的,了解了处理同步问题会方便很多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-11-24
展开全部
你如果多线程只执行一个方法,那确实是这样。但是多线程并不是只执行一个方法的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
18765126071
2014-11-24 · TA获得超过320个赞
知道小有建树答主
回答量:1652
采纳率:0%
帮助的人:338万
展开全部
fgjdhdfhdfh
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
单纯的看_看
2014-11-24 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:71.3万
展开全部
那你单线程咋整 一个个手动开启么 不如用线程池方便啊
追问
如果用同步真比单线程效率低了那单线程就不用什么开启了 就给它一条道跑到黑了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式