关于线程安全的一个问题 你这里加锁的对象是当前这个对象synchronized(this),当多个线程尝试在同一个对象上获取锁的时候,会阻塞,反之,如果不是在同一个对象上,这个锁就无效了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 听说jdk1.6后synchronized性能提高了。使用乐观策略(即异常)比synchronized性能开销低很多吗? 个人经验和理解:如果你的系统不是并发大到了极致,一般都有比抠 到底是异常性能高还是synchronized性能高 更值得研究的性能问题。在实践中很少去考虑这些问题,因为在做性能调优的时候,会用80%的精力去解决带来80%性能瓶颈的问题。另外,我理解的乐观策略就是synchronized,反之悲观策略是手动加锁(Lock/Condition) 个人经验和理解:如果你的系统不是并发大到了极致,一般都有比抠 到底是异常性能高还是synchronized性能高 更值得研究的性能问题。在实践中很少去考虑这些问题,因为在做性能调优的时候,会用80%的精力去解决带来80%性能瓶颈的问题。另外,我理解的乐观策略就是synchronized,反之悲观策略是手动加锁(Lock/Condition)问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常? 你这个业务场景,用wait/notify的模型更合适,如果是单子任务,用wait/notify,如果有多个子任务,用cyclicbarrier 个人经验和理解:如果你的系统不是并发大到了极致,一般都有比抠 到底是异常性能高还是synchronized性能高 更值得研究的性能问题。在实践中很少去考虑这些问题,因为在做性能调优的时候,会用80%的精力去解决带来80%性能瓶颈的问题。另外,我理解的乐观策略就是synchronized,反之悲观策略是手动加锁(Lock/Condition)问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?是这样的。。System.out.println本身就是一个同步的过程,你的synchronized块是多余的如果I/O操作需要同步,你可以考虑把它放在另一个线程中执行(如果I/O可以接受异步操作),所有的输入都放在一个Queue里然后I/O就只管自己了 个人经验和理解:如果你的系统不是并发大到了极致,一般都有比抠 到底是异常性能高还是synchronized性能高 更值得研究的性能问题。在实践中很少去考虑这些问题,因为在做性能调优的时候,会用80%的精力去解决带来80%性能瓶颈的问题。另外,我理解的乐观策略就是synchronized,反之悲观策略是手动加锁(Lock/Condition)问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?是这样的。。System.out.println本身就是一个同步的过程,你的synchronized块是多余的如果I/O操作需要同步,你可以考虑把它放在另一个线程中执行(如果I/O可以接受异步操作),所有的输入都放在一个Queue里然后I/O就只管自己了I/O被封装了,不能动了。I/O前后要访问一个对象,每个I/O共访问两次。I/O存在并发。 个人经验和理解:如果你的系统不是并发大到了极致,一般都有比抠 到底是异常性能高还是synchronized性能高 更值得研究的性能问题。在实践中很少去考虑这些问题,因为在做性能调优的时候,会用80%的精力去解决带来80%性能瓶颈的问题。另外,我理解的乐观策略就是synchronized,反之悲观策略是手动加锁(Lock/Condition)问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?是这样的。。System.out.println本身就是一个同步的过程,你的synchronized块是多余的如果I/O操作需要同步,你可以考虑把它放在另一个线程中执行(如果I/O可以接受异步操作),所有的输入都放在一个Queue里然后I/O就只管自己了我这个情况,顺序是无所谓的,我只解决碰撞问题。cyclicbarrier不合适,等待会浪费太多时间。I/O被封装了,不能动了。I/O前后要访问一个对象,每个I/O共访问两次。I/O存在并发。关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常? 解释太抽象了,再具体点。什么叫I/O前后要访问一个对象?I/O并发是什么意思?你有几个对象要被I/O访问?你的对象具体是什么样子?多个I/O访问同一个对象有没有关系?还有任何其他有助于帮你解决问题的细节都搬出来,代码片段最好。I/O就算封装了也应该有接口吧,接口长啥样?具体的情况采取不同的策略 你的问题,我好像都没有看懂!System.out 是个 PrintStream 的单实例对象,该对象存在线程安全问题,但是 PrintStream 的 println 实现,其内部已经进行同步处理,为什么还要在外面加个同步? 我用System.out.println代替了这部分项目代码,因为这部分是业务代码,公司严禁发到网上。但是不是什么特别的代码,就是个IO的东西。相当于println没有实现同步。 大家来谈谈java.lang.StackOverFlowError,以前没遇到过这个异常 java 如何调试(实例未结束跟踪) 什么原因不能显示有图标的button? 验证码 字符串截取 汉字编码 。这个怎么解释啊,看不懂 关于传值的问题 关于SOCKET心跳连接问题,求教 突然脑子打结了,Integer怎么转回int,不要用String等作中间过渡 为什么要学(用)JAVA? 关于java编码规范 简单问题:jdbc怎样得到存储过程的返回值? ArrayList中的get与size 线程同步的问题求解
问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。
再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?
问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。
再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?
是这样的。。System.out.println本身就是一个同步的过程,你的synchronized块是多余的
如果I/O操作需要同步,你可以考虑把它放在另一个线程中执行(如果I/O可以接受异步操作),所有的输入都放在一个Queue里然后I/O就只管自己了
问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。
再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?
是这样的。。System.out.println本身就是一个同步的过程,你的synchronized块是多余的
如果I/O操作需要同步,你可以考虑把它放在另一个线程中执行(如果I/O可以接受异步操作),所有的输入都放在一个Queue里然后I/O就只管自己了I/O被封装了,不能动了。I/O前后要访问一个对象,每个I/O共访问两次。I/O存在并发。
问题是我现在的情况是,需要同步的部分是个耗时的部分,是一个IO过程。我如果把整个IO过程都同步了,那么不是系统开销问题而是时间上要互相等待。
再就是关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?
是这样的。。System.out.println本身就是一个同步的过程,你的synchronized块是多余的
如果I/O操作需要同步,你可以考虑把它放在另一个线程中执行(如果I/O可以接受异步操作),所有的输入都放在一个Queue里然后I/O就只管自己了
我这个情况,顺序是无所谓的,我只解决碰撞问题。cyclicbarrier不合适,等待会浪费太多时间。I/O被封装了,不能动了。I/O前后要访问一个对象,每个I/O共访问两次。I/O存在并发。
关于线程安全,到底是,如果线程不安全的话,仅仅是顺序不能保证,还是也有可能发生碰撞抛出异常?