Java线程同步有5种方法:
1、同步方法,使用 synchronized关键字,可以修饰普通方法、静态方法,以及语句块。
2、同步代码块,用synchronized关键字修饰语句块。被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
3、使用特殊域变量(volatile)实现线程同步。
4、使用重入锁实现线程同步,在JavaSE5.0中新增了一个java.util.concurrent包来支持同步。
5、使用局部变量实现线程同步,如果使用ThreadLocal管理变量,则每一个使用该变量的线程都获得该变量的副本,副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本,而不会对其他线程产生影响。Java线程同步有5种方法:
1、同步方法,使用 synchronized关键字,可以修饰普通方法、静态方法,以及语句块。
2、同步代码块,用synchronized关键字修饰语句块。被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
3、使用特殊域变量(volatile)实现线程同步。
4、使用重入锁实现线程同步,在JavaSE5.0中新增了一个java.util.concurrent包来支持同步。
5、使用局部变量实现线程同步,如果使用ThreadLocal管理变量,则每一个使用该变量的线程都获得该变量的副本,副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本,而不会对其他线程产生影响。
线程与进程的区别
1、根本区别:进程是资源分配最小单位,线程是程序执行的最小单位。
2、地址空间:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段;线程没有独立的地址空间,同一进程的线程共享本进程的地址空间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)