Java多线程分析(八)----Syschronized VS ReentrankLock
摘要:1.Synchronized Vs ReentrantLock 的区别:在低并发量时期两者性能没有较大的区别,在高并发量的情况下,Sync的阻塞性的锁会严重的损害其性能 在Java1.5之前写并发程序的时候,Synchronized对多个线程共享共同的资源变量中为了保证其共享资源的线程安全的性能,采
阅读全文
Java 多线程分析(七)----CAS操作和阻塞
摘要:1.原子性的操作: CAS --CompareAndSwap(),指的是多个线程进入临界区域中,让多个线程在临界区域上自由的竞争,最后能够保证有一个线程能够胜出,其他没有竞争到的线程可以再一次尝试。最终临界区域上的所有线程都能够线程安全性的完成,这种方式,也叫无锁的方式,在之前的Synchroniz
阅读全文
ArrayList
摘要:java.util.Collection,Collection是java中保存元素的数据结构,因此数据结构采用java中集合collection。通过类型分类的接口来构造对数据结构分析。Collection类支持大多数集合类的操作 Collection中包含不同数据结构的不同接口的共性,通过Coll
阅读全文
Java多线程分析 (二)---- 高并发内存模型和线程安全
摘要:1.原子性: 原子性指一个操作不可中断的CPU操作是原子性:i++不是原子性:分为读取 i++--写入的操作,在类Java.concurrent.atomic类中,这样将操作分解成原子性的操作 2.有序性 当指令分解多个小小步骤:分解成流水线型操作:在每个时钟周期,从编译原理上理解:当执行到MEM过
阅读全文
Java多线程分析 (五)---高并发线程池
摘要:1.线程池的运用的原理:把线程进行复用,不需要普通一样创建线程,销毁线程 所有东西,让几个线程池不断地复用,所有线程保留下来,需要list列表形式: 一个线程池通过ExecotorService的实例进行表示:通过ExecutorService类进行调度和使用,Executors的类创建线程池的类型
阅读全文
Java 多线程分析 (四) ---高并发基础知识)
摘要:1.原子量级操作(读、++操作、写分为最小的操作量单位,在多线程中进行原子量级编程保证程序可见性(有序性人为规定)) 由于某些问题在多线程条件下:产生了竞争的问题,(例如:在多线程中一个简单的计数器增加)如果在程序中不采用同步的机制,那么在程序的运行结果中,多个线程在访问此资源时候,产生Racing
阅读全文
Java(生产者与消费者方法)
摘要:1.采用此种形式主要是:解决线程死锁的情况。 2.信号灯法:目标生产一个消费一个 3.用三个线程A,B,C轮换打印12345 678910 11、12、 13、14、15 第一种方法采用最原始synchronized,notify(),wait() 这种方式采用原始方法,在jdk1.5之后的并发编程
阅读全文
Java 多线程分析 (三) --- synchronize 同步
摘要:两个线程同时访问同一个资源,发生数据不同,解决方法:某个线程运行过程不能被其他线程访问; 1.调用Java.lang.Thread类过程中Runnable接口,在Run方法进行重写(采用接口的方式) 2.采用继承的方式**** extends Thread,在子类直接调用thread 的run方法(
阅读全文
Java 多线程分析 (二)--- 线程优先级别
摘要:Java中最重要理念:线程是一个程序里面中不同的执行路径 2.例子:从下面看出只有一条路径,main()只是主进程,进程执行:进程中主线程开始进行;进程VS线程概念 线程是进程较小的划分单位,I.程序执行过程中至少有一个进程,一个进程中至少有一个线程,进程出现多并发的线程。 II.线程:进程中mai
阅读全文
Java 多线程基础 (一) -----内存分析
摘要://内存分为堆内存和栈内存,Test test=new Test()在内存中显示,前部分在栈内存中分配一个地址new Test()在堆内存分配分配相当于地址房间编号 5. 注意在此过程中多态中内存分析 动态绑定:调用方法重写,看实际过程中new出来的对象判断其调用其(new对象)方法 7.继承中的内
阅读全文