多线程
文章平均质量分 56
章鱼四剑客
这个作者很懒,什么都没留下…
展开
-
Java-反射
Java-反射##1.什么反射:先看正向操作,先有类,再根据类产生类的实例化对象;反射就是根据得到类的Class对象,在更加Class对象实例化类任何类的都有一个描述自己的Class类,记录他的构造方法,普通方法,属性等2.取得类的Class对象1.Object类里面的getClass()public final native Class<?> getClass();...原创 2019-04-25 23:07:46 · 60 阅读 · 0 评论 -
Java—Executor线程池
Java—Executor线程池什么是线程池?将若干线程放在一起,同一进行管理,调度,和监控(线程池就相当于 包工头)为什么要有线程池?线程池有如下的优点:1.降低资源消耗:重复利用已有的线程,减少了不断创建销毁线程的资源消耗2.提高响应速度:在任务到达时,不需要等待线程的创建就可以直接执行任务3.便于管理:使用线程池可以统一进行线程的分配、调度管理线程池构造方法的几个参数几个参数...原创 2019-05-15 09:53:31 · 137 阅读 · 0 评论 -
Java—多线程9 Condition的生产消费者模式
Java—多线程9 Condition的生产消费者模式LockSupport工具类与内建锁阻塞的区别:内建锁进入Block状态LockSupport.park()进入wait状态唤醒:内建锁由JVM随机挑选一个线程唤醒LockSupport.unpark(Thread thread)唤醒指定线程##死锁死锁产生原因:对共享资源的上锁成环代码产生死锁。死锁解决算法:银行家算法...原创 2019-04-29 22:46:11 · 84 阅读 · 0 评论 -
Java—多线程9 Condition的await和signal机制
Java—多线程9 Condition的await和signal机制##两种机制等待队列的对比1.Object的wait和notify是与内建锁(对象监视器)搭配使用,完成线程的等待与通知机制。本地方法实现。2.Condition的await、signal是与Lock体系配合实现线程的等待与通知,Java语言层面的实现,具有更高的控制与扩展性Condition机制有一下三个独有特性:1...原创 2019-04-29 22:44:41 · 234 阅读 · 0 评论 -
Java—多线程8—ReentranReadWriteLock可重入读写锁
Java—多线程8 ReentranReadWriteLock可重入读写锁读写者模型读写锁允许同一时刻被多个读线程访问,但在写线程访问时,所有的读线程以及其他写线程均会被阻塞。写锁是一个独占锁:读锁!= 无锁:如果 读锁==无锁,当有写线程时,读线程不会停止。如果 读锁!=写锁 当有写线程访问时,读线程会被停止写锁—独占锁1.写锁的获取: protected final boo...原创 2019-04-29 22:44:05 · 177 阅读 · 0 评论 -
Java—多线程9 Condition的await和signal机制
Java—多线程9 Condition的await和signal机制##两种机制等待队列的对比1.Object的wait和notify是与内建锁(对象监视器)搭配使用,完成线程的等待与通知机制。本地方法实现。2.Condition的await、signal是与Lock体系配合实现线程的等待与通知,Java语言层面的实现,具有更高的控制与扩展性Condition机制有一下三个独有特性:1...原创 2019-04-29 13:51:39 · 344 阅读 · 0 评论 -
Java—多线程2
Java—多线程2Java中的其他方法1.线程休眠(sleep)单位为毫秒:a.指的是让线程暂缓执行,到了预计时间再恢复执行b.线程休眠会立即交出CPU,让CPU去执行其他任务。线程休眠不会释放对象锁。public static native void sleep(long millis) throws InterruptedException;2.线程让步(yeild)a.暂停当...原创 2019-04-19 23:00:32 · 187 阅读 · 0 评论 -
Java—多线程7—生产者和消费者模型2
Java—多线程5—生产者和消费者模型单生产者,单消费者class Goods { private int count; private String goodName; /** * 生产商品 */public synchronized void producer(String goodName) throws InterruptedException { ...原创 2019-04-19 23:57:35 · 71 阅读 · 0 评论 -
Java—多线程6 生产和消费者模型1
Java—多线程 生产和消费者模型##生产者消费者模型生产者和消费者不直接通信 而是通过一个阻塞队列通信wait()方法使得当前线程立刻停止运行,处于等待状态,并将当前状态置入锁对象的等待队列中,直到被通知(notify())或中断为止。使用条件:只能在同步方法或者同步代码块中使用,必须是内建锁。wait()调用后立刻释放对象锁。1.一直等,直到被唤醒或者中断。public fin...原创 2019-04-19 23:56:05 · 112 阅读 · 0 评论 -
Java—5 内建锁优化
Java—6 内建锁优化所谓内建锁的优化就是优化线程的等待时间##CAS机制1.CAS:全称 Compare And Swap 比较交换机制CAS是一种乐观锁机制:悲观锁:在任意时刻都有线程竞争锁,获取锁成功的线程会阻塞获取锁失败的线程成功获取锁。乐观锁(lock):假设所有线程访问共享资源均不会发生冲突,既然不会发生冲突,就不会阻塞其他线程。不会阻塞线程CAS(无锁操作):有...原创 2019-04-19 23:54:47 · 93 阅读 · 0 评论 -
Java—多线程1
#Java—多线程1进程与线程进程:操作系统中一个程序的执行周期。线程:进程中的一个任务,一个进程可以有多个线程。·······区别·······a.每个进程拥有自己的一整套变量,是操作系统中资源分配的最小单位。线程依托于进程存在,多个线程共享的资源。线程是资源调度的最小单位。b.启动撤销一个进程要比启动撤销一个线程大的多。(轻量级)c.没有进程就没有线程,进程一旦终止,其内的线程...原创 2019-04-19 22:59:36 · 85 阅读 · 0 评论 -
Java—IO—1
Java—I/O—11.File2.输入输出流和转换流3.内存流4.编码方式1.FileFile是一个普通类,在java.io包下,表示的是可进行流操作的文件终端对象File的构造方法有几个重载:1.可以传入URI;2.可以传入String(路径名)有几个常用方法:方法解释public boolean exists()文件是否存在public b...原创 2019-04-28 22:31:00 · 86 阅读 · 0 评论 -
java-反射单级VO操作
java-反射单级VO操作主要用于一次可以设置多个属性值;例如我们现在定义一个Person类,里面有姓名和年龄属性;如果我们调用set来设置属性,要设置两次,如果人数增多并且属性值不是两个就要多次调用set方法;例子class Emp{ private String name; private String dept; public String getName...原创 2019-04-25 23:09:11 · 191 阅读 · 1 评论 -
Java—多线程8 ReentranReadWriteLock可重入读写锁
Java—多线程8 ReentranReadWriteLock可重入读写锁读写者模型读写锁允许同一时刻被多个读线程访问,但在写线程访问时,所有的读线程以及其他写线程均会被阻塞。写锁是一个独占锁:读锁!= 无锁:如果 读锁==无锁,当有写线程时,读线程不会停止。如果 读锁!=写锁 当有写线程访问时,读线程会被停止写锁—独占锁1.写锁的获取: protected final boo...原创 2019-04-21 22:43:51 · 239 阅读 · 0 评论 -
Java——多线程7 独占式锁的获取
Java——多线程7 独占式锁的获取可中断式获取锁public final void acquireInterruptibly(int arg) throws InterruptedException { //如果当前线程处于中断状态,抛出一个异常,方法退出 if (Thread.interrupted()) throw...原创 2019-04-21 22:43:19 · 247 阅读 · 0 评论 -
Java—多线程7 Lock2---深入理解AQS
#Java—多线程7 Lock2—深入理解AQS##独占锁的获取非公平锁1.模板方法aquire(int arg)public final void acquire(int arg) { //调用tryAcquire再次尝试获取锁,如果成功直接退出 //如果失败,首先调用addWaiter将钱财封装成结点入同步队列, if (!tryAcquire(arg) &am...原创 2019-04-21 22:42:07 · 145 阅读 · 0 评论 -
Java—多线程7 Lock
Java—多线程7 Lock1首先synchronize(this){}是自动加解锁JDK1.5后新增了一个guc开发包 java.util.concurrent.locks,体统了与内建锁不同的实现多线程线程共享访问机制。失去了内建锁隐式的加锁与解锁过程。增加了可中断的获取锁,以及超时获取锁以及共享锁等内建锁不具备的特性。##lock锁的标准使用形式1.显示的上锁和解锁过程Lock l...原创 2019-04-21 22:40:56 · 452 阅读 · 0 评论 -
juc包下的关于并发四大工具类
juc包下关于并发的四大工具类##CountDownLatch—闭锁使用CountDownLatch可以实现类似多线程下计数器的功能。构造器:1.参数count为计数器2.调用await()方法时,线程被挂起,它会等待直到count值为0才继续执行 重载:public boolean await(long await ,TimeUnit unit)throw InterruptedE...原创 2019-05-27 16:57:48 · 1131 阅读 · 0 评论