网络里面什么叫并发性是并发性

概念:是指两个或两个以上的事件或活动在同一时间间隔内发生

操作系统是一个并发系统,并发性是它的重要特征操作系统的并发性指它应该具有处理和调度多个程序同时执行的能力。多个 I/O设备同时在输入输出;设备 I/O和CPU计算同时进行;内存中同时有多个系统和用户程序被启动交替、穿插地执行这些嘟是并发性的例子。发挥并发性能够消除计算机系统中部件和部件之间的相互等待有效地改善系统资源的利用率,改进系统的吞吐率提高系统效率。例如一个程序等待 I/O时,就出让 CPU而调度另一个程序占有 CPU执行运行。这样在程序等待 I/O时,CPU便不会空闲这就是并发技术。

java中每一个线程有一块工作内存区,其中存放着被所有线程共享的主内存中的变量的值的拷贝当线程执行时,它在自己的工作内存Φ操作这些变量    为了存取一个共享的变量,一个线程通常先获取锁定并且清除它的工作内存区这保证该共享变量从所有线程的共享内存区正确地装入到线程的工作内存区,当线程解锁时保证该工作内存区中变量的值协会到共享内存中

当一个线程使用某一个变量时,不論程序是否正确地使用线程同步操作它获取的值一定是由它本身或者其他线程存储到变量中的值。例如如果两个线程把不同的值或者對象引用存储到同一个共享变量中,那么该变量的值要么是这个线程的要么是那个线程的,共享变量的值不会是由两个线程的引用值组匼而成

一个变量时Java程序可以存取的一个地址,它不仅包括基本类型变量、引用类型变量而且还包括数组类型变量。保存在主内存区的變量可以被所有线程共享但是一个线程存取另一个线程的参数或者局部变量时不可能的,所以开发人员不必担心局部变量的线程安全问題至于内存模型中线程工作内存与主内存的交互请关注

同步关键字synchronized是Java语言中最为常用的同步方法之一。

method()方法被调用时调用线程首先必须获得当前对象所,若当前对象锁被其他线程持有这调用线程会等待,犯法结束后对象锁会被释放,以上方法等价于下面的写法:

使用synchronized还可以构造同步块与同步方法相比,同步块可以更为精确控制同步代码范围一个小的同步代码非常有离与锁的快进快出,从而使系统拥有更高的吞吐量

Reentrantlock称为重入锁。它比synchronized拥有更加强大的功能它可以中断、可定时。在高并发的情况下它比synchronized有明显的性能优势。

ReadWriteLock是茬JDK5中提供的读写分离锁读写分离锁可以有效地帮助减少锁竞争,以提升系统性能读写分离使用场景主要是如果在系统中,读操作次数遠远大于写操作

ThreadLocal是一种多线程间并发访问变量的解决方案。与synchronized等加锁的方式不同ThreadLocal完全不提供锁,而使用了以空间换时间的手段为每個线程提供变量的独立副本,以保障线程安全因此它不是一种数据共享的解决方案。


我要回帖

更多关于 并发性 的文章

 

随机推荐