Java 线程同步

发布时间: 更新时间: 总字数:520 阅读时间:2m 作者: 分享 复制网址
专栏文章
  1. Java基本数据类型
  2. Java 中的值传递与引用传递
  3. Java中""与null的区别与总结
  4. Java中Enumeration与Iterator的对比
  5. Java中==和equals()的区别
  6. Java的final
  7. Java中List、Set和Map接口的对比
  8. Java中的properties使用
  9. Java的static
  10. Java String和StringBuffer的区别
  11. 什么是Java的main函数
  12. Java如何获取时间24小时制的时间
  13. Java 线程同步(当前)
  14. Java中日期类型和 Mysql 中日期类型进行整合

线程同步

说明

同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。 同”字从字面上容易理解为一起动作 其实不是,“同”字应是指协同、协助、互相配合。

如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。

所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。例如Window API函数SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处理函数所返回的LRESULT值返回给调用者。

在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。 Java版代码:

classMyTest{

    private static final Object lock = new Object();
    public static synchronized void test(){
        //同步的方法
    }
    public void test2(){
        synchronized(lock){
          //方法级同步,也可以使用this实现对象级同步
        }

    }
}
专栏文章
  1. Java基本数据类型
  2. Java 中的值传递与引用传递
  3. Java中""与null的区别与总结
  4. Java中Enumeration与Iterator的对比
  5. Java中==和equals()的区别
  6. Java的final
  7. Java中List、Set和Map接口的对比
  8. Java中的properties使用
  9. Java的static
  10. Java String和StringBuffer的区别
  11. 什么是Java的main函数
  12. Java如何获取时间24小时制的时间
  13. Java 线程同步(当前)
  14. Java中日期类型和 Mysql 中日期类型进行整合
最新评论
加载中...
Home Archives Categories Tags Statistics