
多线程
文章平均质量分 76
HoiDev
这个作者很懒,什么都没留下…
展开
-
Java多线程之状态与生命周期
线程的生命周期线程创建并启动后,不是一启动就进入执行状态,也不会一直处于执行状态。线程启动后不可能一直霸占CPU,所以CPU会在多线程之间切换,于是线程状态也会多次在运行、阻塞之间切换在线程的生命周期中,线程共有5种状态,在任意时刻,线程的状态只能是其中的一种 状态 说明 New 初始状态 —>使用new关键字,创建一个线程,但是还没有调用start方法,仅仅由JVM分配内存,并初始化原创 2016-06-02 10:55:35 · 1945 阅读 · 0 评论 -
JVM之线程安全、原子性实现
定义线程安全2 状态依赖线程的安全度1 不可变Immutable2 绝对线程安全3 相对线程安全4 线程兼容5 线程对立实现线程安全的方法1 同步11 阻塞同步互斥同步12 非阻塞同步Java原子操作的实现13 无同步方案1.定义线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协原创 2016-09-22 00:50:59 · 1651 阅读 · 0 评论 -
JVM之线程实现
线程1 实现线程的方式11 使用内核线程实现12 使用用户线程实现13 用户线程加轻量级进程混合实现2 Java的线程实现并发不一定要依赖多线程,PHP中有多进程并发。但是,Java里面的并发是多线程的。1. 线程参考:Java多线程之基本概念线程是比进程更轻量级的调度执行单位。线程可以把一个进程的资源分配和执行调度分开。一个进程里可以启动多条线程,各个线程可共享该进程的资源(内存地址,文原创 2016-09-22 00:46:13 · 1802 阅读 · 0 评论 -
Java多线程之同步容器与并发容器
同步容器VectorHashtableCollections.synchronziedXX并发容器ConcurrentMap基於Hashtable,段Segement,最大16個把粒度分細,每個段有自己的鎖共享變量用volatile關鍵字,第一時間獲得修改數據。從主內存讀取,不從工作內存讀取CopyonWrite容器JDK有兩種COW容器CopyOnWriteArrayListCopyOnWri原创 2016-09-06 23:11:31 · 416 阅读 · 0 评论 -
消费者生产者队列BlockQueue
8月的笔记import java.util.LinkedList;import java.util.concurrent.atomic.AtomicInteger;public class MyBlockQueue { //裝載元素的集合 private final LinkedList<Object> list = new LinkedList<Object>(); //原创 2016-09-06 23:09:43 · 1939 阅读 · 1 评论 -
Java多线程之线程同步
线程同步线程安全问题线程安全当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。synchronized可以在任意对象及方法上加锁,而加锁的这段代码称为”互斥区”或”临界区”关键字synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁, 所以代码中哪个线程先执行synchronized关键字的方法,哪个线程就持原创 2016-09-06 22:07:04 · 263 阅读 · 0 评论 -
Java多线程之线程同步
线程同步线程安全问题多线程情况下,当多个线程访问同一个数据时,很容易出现线程安全问题。经典的问题——银行取钱问题。几个人同时取一个帐号里的钱,就可能出现问题。下面模拟一下。//账户类public class Account { private String accountNo; private double balance; public Account() { }原创 2016-07-03 21:13:25 · 430 阅读 · 0 评论 -
Java多线程之控制线程
控制线程Java的线程支持,提供了便捷工具,方便控制线程的执行。包括join线程,后台线程,线程睡眠sleep,线程让步yield,改变线程优先级prioriy。join线程Thread提供了让一个线程等待另一个线程完成的方法–join()。在程序执行流中调用其他线程的join()方法时,当前线程将被阻塞,直到join入来的线程执行完毕。public class ControllThread ex原创 2016-07-03 21:12:30 · 382 阅读 · 0 评论 -
Java多线程之基本概念
什么是进程(Process)几乎所有OS都支持进程概念,进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,是系统资源分配和调度的一个独立运行单位。程序是静态的概念,进程是动态的概念。程序是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体,当一个程序进入内存运行时,就变成进程。进程是程序在某个数据集上的执行,是一个动态实体(进程本身不会运行,是线程的容器)。进程因创建而产生原创 2016-05-31 16:21:49 · 455 阅读 · 0 评论 -
Java多线程之线程创建和启动
Java使用Thread类表示线程,所有的线程对象必须是Thread类或其子类的实例,每个线程的作用,实际上就是执行一段程序刘,java使用线程执行体来代表着段程序流创建线程3方法继承Thread类创建线程的方法1是继承Thread类,重写run()方法,该方法的方法体代表了线程需要完成的任务,因此run()方法叫做线程执行体创建了Thread类子类的实例,即创建了线程对象启动线程应该用线程对原创 2016-05-31 20:11:29 · 428 阅读 · 0 评论 -
JVM之锁的优化
自旋锁Spinning锁消除锁粗化轻量级锁偏向锁对象内存布局JDK 1.5 到 JDK 1.6的一个重要改进,便是高效并发。此时实现了各种锁优化技术,为了高效地在线程之间共享数据,解决竞争问题,从而提高执行效率。适应性自旋锁(Adaptive Spinning)锁消除(Lock Elimination)锁粗化(Locking Coarsening)轻量级锁(Lightweight原创 2016-09-22 00:57:20 · 609 阅读 · 0 评论