Java多线程(Thread)--线程控制的常见⽅法实现多线程
⼀、实现多线程⽅案⼀:继承Thread类
步骤
步骤:
A:⾃定义类MyThread继承Thread类。
B:MyThread类⾥⾯重写run()。(为了区分哪些代码能够被线程执⾏,java提供了Thread类中的run()⽤来包含那些被线程执⾏的代码)
C:创建对象
D:启动线程
多线程:⼀个应⽤程序有多条执⾏路径
多进程的意义: 提⾼CPU的使⽤率
多线程的意义: 提⾼应⽤程序的使⽤率
1、多线程的执⾏流程图解 :
2、线程调度和获取设置线程优先级:
* 如何获取线程对象的优先级?
*  public final int getPriority():返回线程对象的优先级
* 如何设置线程对象的优先级呢?
*  public final void setPriority(int newPriority):更改线程的优先级。
*
* 注意:
*  线程默认优先级是5。
*  线程优先级的范围是:1-10。
*  线程优先级⾼仅仅表⽰线程获取的 CPU时间⽚的⼏率⾼,但是要在次数⽐较多,或者多次运⾏的时候才能看到⽐较好的效果。 *
* IllegalArgumentException:⾮法参数异常。
* 抛出的异常表明向⽅法传递了⼀个不合法或不正确的参数。
public class ThreadPriority extends Thread {
// 重写run⽅法
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(getName() + ":" + x);
}
}
}一个线程可以包含多个进程
public class ThreadPriorityDemo {
public static void main(String[] args) {
ThreadPriority tp1 = new ThreadPriority();
ThreadPriority tp2 = new ThreadPriority();
ThreadPriority tp3 = new ThreadPriority();
tp1.setName("东⽅不败");
tp2.setName("岳不");
tp3.setName("林平之");
//设置正确的线程优先级
tp1.setPriority(10);
tp2.setPriority(1);
tp1.start();
tp2.start();
tp3.start();
}
}
线程控制
线程优先级:
1、线程控制--休眠线程:
public class ThreadSleep extends Thread {
// 重写run⽅法
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(getName() + ":" + x + ",⽇期:" + new Date());  // 睡眠
// 困了,我稍微休息1秒钟
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class ThreadSleepDemo {
public static void main(String[] args) {
ThreadSleep ts1 = new ThreadSleep();
ThreadSleep ts2 = new ThreadSleep();
ThreadSleep ts3 = new ThreadSleep();
ts1.setName("林青霞");
ts2.setName("林志玲");
ts3.setName("林志颖");
ts1.start();
ts2.start();
ts3.start();
}
}
2、线程控制--加⼊线程:
public final void join():等待该线程终⽌
public class ThreadJoin extends Thread {
// 重写run⽅法
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(getName() + ":" + x);
}
}
}
public class ThreadJoinDemo {
public static void main(String[] args) {
ThreadJoin tj1 = new ThreadJoin();
ThreadJoin tj2 = new ThreadJoin();
ThreadJoin tj3 = new ThreadJoin();
tj1.setName("李渊");
tj2.setName("李世民");
tj3.setName("李元霸");
tj1.start();
try {
tj1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
tj2.start();
tj3.start();
}
}
3、线程控制--礼让线程:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。