
Thread
菜鸟的自我素养
java开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程创建的两种方式
1.继承Thread类:package com.java.Thread;/**@author jack@create 2019-07-09 18:31多线程创建方式1:继承Thread类*/public class MyThread extends Thread {//run()方法中书写当前方法的执行体@Overridepublic void run() {for (...原创 2019-07-09 22:25:22 · 311 阅读 · 0 评论 -
多线程中sleep()和wait()方法的的区别
相同点:一旦执行方法,当前线程都会进入阻塞状态不同点:1.两个方法的声明位置不同,sleep()是Thread类中的方法,wai()是Object类中的方法2.调用要求不同:sleep()可以在任何场景下调用,wai()只能在同步代码块或者同步方法中调用、3.是否释放同步监视器:如果两个方法都是用在同步方法或者同步代码块中,sleep()不释放同步监视器,wai()释放同步监视器4.是否...原创 2019-07-11 00:22:01 · 544 阅读 · 0 评论 -
Exception in thread "打印机1" Exception in thread "打印机2" java.lang.IllegalMonitorStateException
多线程报如下异常:Exception in thread “打印机1” Exception in thread “打印机2” java.lang.IllegalMonitorStateExceptionat java.lang.Object.notify(Native Method)at com.java.Number.run(PrintNumber.java:31)at java.lan...原创 2019-07-11 00:11:10 · 736 阅读 · 0 评论 -
线程间的通信
package com.java;/**@author jack@create 2019-07-10 23:46线程间通信:wait(),notify(),notifyAll()三个方法实现线程间的通信三个方法都是Object类中的方法,三个方法的调用者必须是同步监视器,且必须相同,三个方法必须都写在同步代码块中*/public class PrintNumbe...原创 2019-07-11 00:02:12 · 170 阅读 · 0 评论 -
使用Lock解决线程安全问题
package com.java;import java.util.concurrent.locks.ReentrantLock;/**@author jack@create 2019-07-09 22:00使用Lock解决线程安全问题三种解决线程安全问题方式的区别:synchronized在执行完相应的代码之后会自动释放同步监视器,Lock需要手动的启动同步监视器lock()并且...原创 2019-07-10 23:33:04 · 376 阅读 · 0 评论 -
单例模式的两种创建方式
1.懒汉式(1)使用同步方法的方式:package com.java.single;/**懒汉式@author jack@create 2019-07-10 22:26*/public class LazySingle {public static void main(String[] args) {Dog dog = Dog.getDog() ;System.o...原创 2019-07-10 22:51:49 · 252 阅读 · 0 评论 -
线程安全问题
通过同步机制解决线程安全问题:方式一:同步代码块synchronized(同步监视器){//同步代码块,需要被同步的代码}说明:操作共享数据的代码,即为需要被同步的代码,不能多包含也不能少包含共享数据:多个线程共同操作的变量,比如ticket就是共享数据同步监视器:锁,任何一个对象都可以作为锁要求:多个线程共用同一个锁5.同步方式解决了线程安全问题,但是每次只能有一个线程执行,相...原创 2019-07-09 23:54:59 · 137 阅读 · 0 评论 -
多线程的生命周期
获取cpu执行权 新建---------调用start()-------------- >就绪 -------------------->运行失去执行权或yieled就绪 <--------------------- 运行运...原创 2019-07-09 22:54:34 · 185 阅读 · 0 评论 -
卖票两种实现方式----------多线程典型应用
1.使用继承Threadpackage com.java.Thread;/**@author jack@create 2019-07-09 19:34*/public class Window extends Thread {private static int ticket =100;@Overridepublic void run() {while (true){if ...原创 2019-07-09 22:34:19 · 451 阅读 · 0 评论 -
线程创建方式之实现Callable接口
package com.java.thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/**实现Callable接口@author jack@create 2019-07-12...原创 2019-07-12 15:23:40 · 256 阅读 · 0 评论