day19 java语言中的-----线程
一、线程(Thread)的概述:
1、进程(process):是具有一定独立功能的程序,
是系统资源进行资源分配合调度的一个独立单位,
一个进程可以同时进行多个任务,一个进程可以有多个线程。
2、线程(thread):可以定义为程序内的单序列控制流,
每个线程都被分配了一个独立执行的独特任务,
线程是CPU调度和分派的基本单位,
同一个进程内的线程共享进程资源。
3、线程周期: 新建 --> 可运行 --> 不可运行 -->终止 -->死亡: 彼此之间是可以不断的切换。
(new) (调用start) (休眠sleep、终止) (interrup方法、stop方法)
4、join方法:只有当当前线程执行完毕以后才去执行其他的方法
5、同步化(synchronized):当多个线程同时执行的时候,如果存在数据的竞争,那么通过同步化协调多个线程
即:使用synchronized关键字:表示同一个时刻,只有一个线程可以访问该方法。
5.1:同步化方法:
5.2:同步化代码块:
二、线程实例一
package www.com.c4;
public class Thread01 {
public static void main(String[] args) {
//当前执行的是主线程
Thread thread = Thread.currentThread();
System.out.println(thread);//输出当前主线程的相关信息
System.out.println(thread.getName());//输出线程的名字
System.out.println(thread.getPriority());//获取到当前线程的优先级别:是0-->10的一个级别
System.out.println(thread.isAlive());//判断当前线程是否还存在,是否还生活着
try {
thread.sleep(2000);
System.out.println("线程的休眠时间为2秒!");
} catch (InterruptedException e) {
System.out.println("线程被中断!");
}
//设置线程的名字
thread.setName("thread001");
}
}
三、实例二:多线程
package www.com.c4;
//步骤:
//1、继承thread类,或者继承实现“runable”接口
//2、实现run方法
//3、在run方法里面编写对应的线程
//线程01
class ThreadA extends Thread {
@Override
public void run() {
//在run方法类编写线程
for (int i = 1; i < 10; i+=2) {
try {
Thread.sleep(2000);//休眠
} catch (InterruptedException e) {
}
System.out.println(i);
}
}
}
//线程02
class ThreadB extends Thread{
@Override
public void run() {
for (int j = 2; j < 10; j+=2) {
try {
Thread.sleep(1000);//休眠
} catch (InterruptedException e) {
}
System.out.println(j);
}
}
}
//主线程
public class Thread02 {
public static void main(String[] args) {
System.out.println("线程启动!");
//创建两个线程实例
ThreadA A = new ThreadA();
ThreadB B = new ThreadB();
//启动线程
A.start();
B.start();
//join方法
try {
A.join();//等待该线程执行完毕以后,在去执行其他的线程
B.join();
} catch (InterruptedException e) {
}
//设置优先级
A.setPriority(1);
B.setPriority(10);
System.out.println("线程结束!");
}
}
四、结束语
线程的学习到这里就差不多了,但是你得理解他的核心思想。我这里不是很全面,你可以借助一些视频教程或数据系统的学习。
转载于:https://blog.51cto.com/dzx123/1975073