摘要:
1、几个概念: (1)线程池 ThreadPoolExecutor:存放线程的池子( --!) (2)线程 Thread:用于执行实现接口的任务 (3)任务缓存队列:用于存放Thread要执行的任务2、几个变量和方法的解释 (1)ThreadPoolExecutor的构造方法参数 corePool... 阅读全文
摘要:
package com.thread.test;/** * 1、生产者生产出产品,给商店(缓冲区) 2、商店把产品提供给消费者 * (1)需要三个角色,生产者,商店,消费者 * (2)涉及到多线程 * (3)涉及到线程安全 * (4)线程间通信 */class Producer imp... 阅读全文
摘要:
1、线程间的通信主要靠三个方法 (1)wait(),使当前线程放弃cpu、对象锁,重新排队等待对共享资源的访问 (2)notify(),唤醒等待线程中优先级最高的线程,执行共享资源 (3)notifyAll(),唤醒所有的等待线程 (4)这三个方法是object里面的方法,而非thr... 阅读全文
摘要:
1、死锁原因(1)死锁问题处理线程同步时需要处理 (2)不同的线程分别占用对方需要的资源不放弃,都在等待对方先释放自己需要的同步资源,就造成了线程死锁 (3)当线程执行完代码后,或者执行过程中发生异常时,线程会释放对象锁2、死锁例子package com.thread.test;//死锁问题处理线程... 阅读全文
摘要:
1、线程安全问题原因? 由于一个线程在操作一个共享数据时,未执行完毕的情况下,另外的线程参与进来,导致共享数据存在安全问题 2、如何解决线程安全问题? 一个线程操作完共享数据以后,其他线程才可以操作共享数据 3、java使用线程同步机制实现,线程安全 方式一:同步代码块 sy... 阅读全文
摘要:
1、线程方法 1)、start(),启动线程,并进入就绪状态,随时等待执行 2)、run(),重写的方法,开始执行线程 3)、currentThread(),调用当前线程 4)、getName(),获取线程名字 5)、setName(),设置线程名字 6)、yield(),调用此方法的线程... 阅读全文