实现方式
在java中线程有两种实现方式:
1.继承thread类
2.实现runnable接口
Thread类
Thread类时在java.lang包中定义的,继承thread类必须重写run()方法
格式:class classname extends thread{ run(){}; }
启动:thread.start();
Runnable接口
格式:class className implements runnable{ run(){}; }
启动:className = new runnable(); new Thread(className).start();
继承thread与实现runnable的区别
继承Thread实现的模式是 定义多个线程,各自完成各自的任务. 实现Runnable实现的模式是 定义多个线程,实现一个任务
大多数情况下,如果只想重写 run() 方法,而不重写其他 Thread 方法,那么应使用 Runnable 接口
线程的状态
创建:准备好了一个多线程对象
就绪:调用了start()方法,等待CPU进行调度
运行:执行run()方法
阻塞:暂时停止执行,可能将资源交给其它线程使用
终止:(死亡)线程销毁
线程的常用方法
取得线程名称:getName
取得当前线程对象:currentThread
判断线程是否启动:isAive
线程的强行运行:join,在主线程执行时,强行执行new出来的线程
线程的休眠:sleep
线程的礼让:yield
线程优先级(可能会比其它线程先执行)
1-MIN_PRIORITY
10-MAX_PRIORITY
5-NORM_PRIORITY 什么都不设置默认值是5
线程同步
使用synchronized修饰即可