要想了解线程,就要先了解什么是线程,想要了解线程,就要先了解什么是进程。
进程
最简单的了解方法就是打开任务管理器,会显示出你电脑的进程,而通过观察会发现进程就是你正在运行的程序。
进程就是系统进行资源分配和调用的独立单位。每一个进程都有他自己的内存空间和系统资源。
线程
是程序的执行单元,执行路径,是程序使用cpu最基本的单位。
单线程就是程序只有一条执行路径。
多线程就是程序有多条执行路径。(比如你在用百度云下载文件的时候像百度云里传输文件)
多线程的实现
目前我接触的有两种方法,有待补充,听学长说还有一种方法不经常使用。
方式一:继承Thread类。
1.自定义类MyThread继承Thread。
2.在MyThread类中重写run()方法。
3.创建MyThread类的对象。
4.启动线程对象。
方式二:实现Runnable类
1.自定义类MyRunnable继承Runnable。
2.在MyRunnable类中重写run()方法。
3.创建MyRunnable类的对象。
4.创建MyThread类的对象,并把第三部创建的对象作为构造参数传递。
我使用第二种方法做了一个简单的多线程卖票,三个窗口同时卖票。
package duoxiancheng;
public class Modo implements Runnable {
private int a=100;
@Override
public void run() {
// TODO Auto-generated method stub
while(true)
{
if(a>0)
{
System.out.println(Thread.currentThread().getName()+"正在出售第"+(a--)+"张票");
}
}
}
}
package duoxiancheng;
public class Text {
public static void main(String[] args) {
Modo mo = new Modo();
Thread th = new Thread(mo, "窗口1");
Thread th1 = new Thread(mo, "窗口2");
Thread th2 = new Thread(mo, "窗口3");
th.start();
th1.start();
th2.start();
}
}