美文网首页
《Java并发程编程艺术》重点总结

《Java并发程编程艺术》重点总结

作者: 消失er | 来源:发表于2018-02-24 19:47 被阅读26次
    • synchronized修饰的代码块同步执行,不在synchronized块中的代码会异步执行,因此推荐用同步代码块,而非同步整个方法。

    • synchronized修饰同步方法和代码块,一定是排队运行的(线程独占)。

    • 多线程访问“共享变量”,才需要加同步。

    • 同步不能继承。

    • 当一个线程执行的代码出现异常,其持有的锁会自动释放。

    • synchronized加到static方法上是给Class类上锁。

    • synchronized加到实例方法上,是给对象上锁。

    • String常量池缓存,synchronized代码块加锁一般不使用String。

    • synchronized代码块具有volatile同步变量到主内存的功能。

    • wait()和notify()都是在同步方法、代码块中使用。

    • 执行notify()后不会立即释放对象锁,等执行完synchronized代码块才释放,然后其他wait状态的线程才可以获得该对象锁。

    • 线程间通信,可使用管道字节流、管道字符流;建立通信的管道两端,都是阻塞的,即写端无写入时,读端将会阻塞。类似于

    • Linux进程通信的pipe。
      PipeInputStream/PipeOutputStream
      PipeReader/PipeWriter

    • ReentrantReadWriteLock 具有读和写两个锁;读读共享锁、写写排他锁、读写排他锁(有写 就互斥)。

    相关文章

      网友评论

          本文标题:《Java并发程编程艺术》重点总结

          本文链接:https://www.haomeiwen.com/subject/zascxftx.html