●
程序,进程,线程
●
线程和进程的关系
●
创建线程
●
Thread类中方法
●
线程优先级
●
线程状态
●
守护线程
●
多线程的概念
●
线程同步
●
Lock
●
线程通信
●
新增创建线程方式
一.
程序
,
进程
,
线程
程序:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码.
进程:就是正在执行的程序,从Windows角度讲,进程是操作系统进行资源分配
的最小单位.
线程:进程可进一步细化为线程,是一个进程内部的最小执行单元,是操作系统进行任务调度的最小单元,隶属于进程
二.线程和进程的关系
●
一个进程可以包含多个线程,一个线程只能属于一个进程,线程不能脱离进程
而独立运行;
●
每一个进程至少包含一个线程(称为主线程);在主线程中开始执行程序,
java程序的入口main()方法就是在主线程中被执行的。
●
在主线程中可以创建并启动其它的线程;
●
一个进程内的所有线程共享该进程的内存资源
三.创建线程
●
继承Thread类的方式
●
实现Runnable接口的方式
继承Thread类的方式:
代码实现方式如下:
public class Mythread extends Thread{//thread类是java提供的对线程进行管理的类
@Override
public void run() {
for (int i = 0; i <1000 ; i++) {
System.out.println("thread:"+i);
}
}
}
public class text {
public static void main(String[] args) {
System.out.println("main开始");
Mythread mythread = new Mythread();//创建了一个线程
mythread.start();//这里不能调用自己重写的run方法,如果调用了run相当于只有一个主线程,没有执行自己创建的线程
for (int i = 0; i <1000 ; i++) {
System.out.println("main结束");
}
}
}
实现Runnable接口的方式:
●
java.lang.Runnable接口中仅仅只有一个抽象方法:
public void
run()
●
可以通过实现Runnable接口的方式来实现线程,只需要实现其中的run方法即可
●
Runnable接口的存在主要是为了解决Java中不允许多继承的问题
定义:
public class MyThread implements Runnable{
@Override
public void run() {
……
}
}
线程执行任务
MyThread r = new MyThread();
创建一个线程作为外壳,将r包起来,
Thread thread = new Thread(r);
thread.start();
继承方式和实现方式的联系与区别
继承Thread: 线程代码存放Thread子类run方法中。
实现Runnable:线程代码存在接口的子类的run方法。
实现Runnable的好处:
1)避免了单继承的局限性
2)多个线程可以共享同一个接口实现类的对象,非常适合多个相同线程来处
理同一份资源。
四.Thread
类中方法
void start() 启动线程
final String getName() 返回线程的名称
final void setPriority(int newPriority) 设置线程的优先级
final int getPriority() 返回线程的优先级
final void join()