在一个操作系统中,每个独立执行的程序都可成为一个进程,在一个进程中还可有多个执行单元同时运行,这些执行单元可以看作程序执行的一条条线索,被称为线程。
每一个进程中都至少存在一个线程
1,继承Thread类创建多线程,覆写Thread类的run()方法,start()方法用于启动线程,线程启动后,系统会自动调用runU()方法;
public class Example02{
public static void public static void main(String[] args) {
MyThread myThread=new MyThread();
myThread.start();
while(true){
System.out.println("main方法在运行")
}
}
}
class MyThread extends Thread{
public void run(){
while(true){
System.out.println("MyThread类的run()方法在运行");
}
}
}
此法的局限性为,java只支持单继承,当一个类继承了某个父类就无法再继承Thread类实现多继承。
为了克服这种弊端,Thread类提供了另外一个构造方法
Thread(Runnable target),其中Runnable是一个接口,他只有一个run()方法。
当通过Thread(Runnable target)构造方法创建线程对象时,只需为该方法传递一个实现了Rnnable接口的实例对象,
这样创建的线程将调用实现了Runnable接口中的run()方法作为运行代码
public class Example1{
public static void public static void main(String[] args) {
MyThread myThread=new MyThread();
Thread thread=new Thread(myThread);
thread.start();
while(true){
System.out.println("main方法在运行");
}
}
}
class MyThread implements Runnable{
public void run(){//线程的代码块,当调用start()方法时,线程从此处开时执行
while(true){
System.out.println("MyThread类的run()方法在运行");
}
}
}
//适合多个相同程序代码的线程去处理同一个资源的情况
每一个进程中都至少存在一个线程
1,继承Thread类创建多线程,覆写Thread类的run()方法,start()方法用于启动线程,线程启动后,系统会自动调用runU()方法;
public class Example02{
public static void public static void main(String[] args) {
MyThread myThread=new MyThread();
myThread.start();
while(true){
System.out.println("main方法在运行")
}
}
}
class MyThread extends Thread{
public void run(){
while(true){
System.out.println("MyThread类的run()方法在运行");
}
}
}
此法的局限性为,java只支持单继承,当一个类继承了某个父类就无法再继承Thread类实现多继承。
为了克服这种弊端,Thread类提供了另外一个构造方法
Thread(Runnable target),其中Runnable是一个接口,他只有一个run()方法。
当通过Thread(Runnable target)构造方法创建线程对象时,只需为该方法传递一个实现了Rnnable接口的实例对象,
这样创建的线程将调用实现了Runnable接口中的run()方法作为运行代码
public class Example1{
public static void public static void main(String[] args) {
MyThread myThread=new MyThread();
Thread thread=new Thread(myThread);
thread.start();
while(true){
System.out.println("main方法在运行");
}
}
}
class MyThread implements Runnable{
public void run(){//线程的代码块,当调用start()方法时,线程从此处开时执行
while(true){
System.out.println("MyThread类的run()方法在运行");
}
}
}
//适合多个相同程序代码的线程去处理同一个资源的情况