189 8069 5689

新建线程java代码,新建线程的方法

Java开发如何创建一个线程?

(1)通过扩展Thread类来创建多线程

创新互联公司-专业网站定制、快速模板网站建设、高性价比漳县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式漳县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖漳县地区。费用合理售后完善,10余年实体公司更值得信赖。

public static void main(String [] args){

MutliThread m1=new MutliThread("Window 1");

MutliThread m2=new MutliThread("Window 2");

MutliThread m3=new MutliThread("Window 3");

m1.start();

m2.start();

m3.start();

}

}

class MutliThread extends Thread{

private int ticket=100;//每个线程都拥有100张票

MutliThread(String name){

super(name);//调用父类带参数的构造方法

}

public void run(){

while(ticket0){

System.out.println(ticket--+" is saled by "+Thread.currentThread().getName());

}

}

}

(2)通过实现Runnable接口来创建多线程

public static void main(String [] args){

MutliThread m1=new MutliThread("Window 1");

MutliThread m2=new MutliThread("Window 2");

MutliThread m3=new MutliThread("Window 3");

Thread t1=new Thread(m1);

Thread t2=new Thread(m2);

Thread t3=new Thread(m3);

t1.start();

t2.start();

t3.start();

}

}

class MutliThread implements Runnable{

private int ticket=100;//每个线程都拥有100张票

private String name;

MutliThread(String name){

this.name=name;

}

public void run(){

while(ticket0){

System.out.println(ticket--+" is saled by "+name);

}

}

}

java线程有几种创建方式?

一、继承Thread类创建线程子类\x0d\x0a 1.在这子类中重写run方法,在run方法内写线程任务代码\x0d\x0a 2.创建该子类实例,即是创建了一个线程实例\x0d\x0a 3.调用该实例的start方法来启动该线程\x0d\x0a二、建一个类去实现Runnable接口\x0d\x0a 1.该类去实现接口的run方法,run方法内写线程任务代码\x0d\x0a 2.创建该类实例,把该实例当作一个标记target传给Thread类,如:Thread t = new Thread(该类实例);即创建一个线程对象\x0d\x0a 3.调用线程的star方法来启用该线程

java怎么创建一个线程

Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:

Tread thread = new Thread();

执行该线程可以调用该线程的start()方法:

thread.start();

编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口。接下来我们会具体讲解这两种方法:

创建Thread的子类

创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:

public class MyThread extends Thread {

public void run(){

System.out.println("MyThread running");

}

}

可以用如下方式创建并运行上述Thread子类

MyThread myThread = new MyThread();

myTread.start();

一旦线程启动后start方法就会立即返回,而不会等待到run方法执行完毕才返回。就好像run方法是在另外一个cpu上执行一样。当run方法执行后,将会打印出字符串MyThread running。

实现Runnable接口

第二种编写线程执行代码的方式是新建一个实现了java.lang.Runnable接口的类的实例,实例中的方法可以被线程调用。下面给出例子:

public class MyRunnable implements Runnable {

public void run(){

System.out.println("MyRunnable running");

}

}

为了使线程能够执行run()方法,需要在Thread类的构造函数中传入 MyRunnable的实例对象。示例如下:

Thread thread = new Thread(new MyRunnable());

thread.start();

当线程运行时,它将会调用实现了Runnable接口的run方法。上例中将会打印出”MyRunnable running”。

多线程的java 程序如何编写?

Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

新建状态:

使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。

就绪状态:

当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。

运行状态:

如果就绪状态的线程获取 CPU 资源,就可以执行 run(),此时线程便处于运行状态。处于运行状态的线程最为复杂,它可以变为阻塞状态、就绪状态和死亡状态。

阻塞状态:

如果一个线程执行了sleep(睡眠)、suspend(挂起)等方法,失去所占用资源之后,该线程就从运行状态进入阻塞状态。在睡眠时间已到或获得设备资源后可以重新进入就绪状态。可以分为三种:

等待阻塞:运行状态中的线程执行 wait() 方法,使线程进入到等待阻塞状态。

同步阻塞:线程在获取 synchronized 同步锁失败(因为同步锁被其他线程占用)。

其他阻塞:通过调用线程的 sleep() 或 join() 发出了 I/O 请求时,线程就会进入到阻塞状态。当sleep() 状态超时,join() 等待线程终止或超时,或者 I/O 处理完毕,线程重新转入就绪状态。

死亡状态:

一个运行状态的线程完成任务或者其他终止条件发生时,该线程就切换到终止状态。

Java并发编程:如何创建线程,进程

在java中如果要创建线程的话,一般有两种方式:1)继承Thread类;2)实现Runnable接口。

1.继承Thread类

继承Thread类的话,必须重写run方法,在run方法中定义需要执行的任务。

123456789101112

class MyThread extends Thread{ private static int num = 0; public MyThread(){ num++; } @Override public void run() { System.out.println("主动创建的第"+num+"个线程"); }}

创建好了自己的线程类之后,就可以创建线程对象了,然后通过start()方法去启动线程。注意,不是调用run()方法启动线程,run方法中只是定义需要执行的任务,如果调用run方法,即相当于在主线程中执行run方法,跟普通的方法调用没有任何区别,此时并不会创建一个新的线程来执行定义的任务。

1234567891011121314151617181920

public class Test { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); }} class MyThread extends Thread{ private static int num = 0; public MyThread(){ num++; } @Override public void run() { System.out.println("主动创建的第"+num+"个线程"); }}

在上面代码中,通过调用start()方法,就会创建一个新的线程了。为了分清start()方法调用和run()方法调用的区别,请看下面一个例子:

1234567891011121314151617181920212223

public class Test { public static void main(String[] args) { System.out.println("主线程ID:"+Thread.currentThread().getId()); MyThread thread1 = new MyThread("thread1"); thread1.start(); MyThread thread2 = new MyThread("thread2"); thread2.run(); }} class MyThread extends Thread{ private String name; public MyThread(String name){ this.name = name; } @Override public void run() { System.out.println("name:"+name+" 子线程ID:"+Thread.currentThread().getId()); }


网站标题:新建线程java代码,新建线程的方法
链接分享:http://cdxtjz.cn/article/dssgcdj.html

其他资讯