您的位置 首页 java

java 多线程详解

线程 分为5个阶段:创建、就绪、运行、阻塞、终止。

java 中要想实现 多线程 ,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。

一、扩展java.lang.Thread类

package com.multithread.learning;

class Thread1 extends Thread{ private String name;

public Thread1(String name) {

this.name=name; }

public void run() {

for (int i = 0; i < 5; i++) {

System.out.println(name + “运行 : ” + i);

try {

sleep((int) Math.random() * 10);

} catch (InterruptedException e) {

e.printStackTrace();

} }

} }

public class Main { public static void main(String[] args) {

Thread1 mTh1=new Thread1(“A”);

Thread1 mTh2=new Thread1(“B”);

mTh1. start (); mTh2.start(); } }

二、实现java.lang.Runnable接口

package com.multithread.runnable;

class Thread2 implements Runnable{

private String name;

public Thread2(String name) {

this.name=name;

}

@Override public void run() {

for (int i = 0; i < 5; i++) {

System.out.println(name + “运行 : ” + i);

try {

Thread.sleep((int) Math.random() * 10);

} catch (InterruptedException e) {

e.printStackTrace();

} } } }

public class Main {

public static void main(String[] args) {

new Thread(new Thread2(“C”)).start();

new Thread(new Thread2(“D”)).start(); }

}

三、Thread和Runnable的区别

如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。

总结:

实现Runnable接口比继承Thread类所具有的优势:

1):适合多个相同的程序代码的线程去处理同一个资源

2):可以避免java中的单继承的限制

3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立

提醒一下大家:main方法其实也是一个线程。在java中所以的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。

在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个jVM实习在就是在操作系统中启动了一个进程。

文章来源:智云一二三科技

文章标题:java 多线程详解

文章地址:https://www.zhihuclub.com/200366.shtml

关于作者: 智云科技

热门文章

网站地图