您的位置:首页 > 编程语言 > Java开发

java多线程简介及线程创建方式

2017-09-12 23:04 363 查看
一 java多线程简介

程序是为了完成特定任务、用某种语言编写的一组指令的集合。

进程是程序的一次执行过程,是系统进行调度和资源分配的一个独立单位。

线程是比进程更小一级的执行单元,线程不能独立存在,必须存在于进程中,各线程间共享进程空间的数据。

在一个程序里面可以只运行一个线程,也可以创建多个线程运行。如图所示:



多线程通常是用来进行并行计算的。什么意思呢,就是把一个任务分解成多个子任务同时执行,提高效率。

举个例子:假如有10块砖需要从A地搬到B地,一次搬一块,如果用一个人来搬,假如来回一趟需要10分钟,那么

搬完10块砖就需要100分钟。如果现在派10个人同时来搬这10块砖,那么就只需要消耗10分钟就可以完成搬砖任务。

所以多线程是以多消耗系统资源的方式来换取程序性能上的提升。

java中线程的生命周期图解:



二 java线程的创建

java中创建线程有两种方式,一种是继承Thread,另一种是实现Runnable接口。不多解释,直接来看代码:

class CreateByThread extends Thread{
String[] colors={"red","orange","yellow", "green",
"blue","indigo","purple","black","white"};
public void run() {
for(int i=0;i<colors.length;i++){
try {
System.out.println(colors[i]);
Thread.sleep((long)(Math.random()*2000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class CreateByRunnable implements Runnable{
String[] colors={"红色","橙色","黄色", "蓝色",
"绿色","靛色","紫色","黑色","白色"};
public void run() {
for(int i=0;i<colors.length;i++){
try {
System.out.println(colors[i]);
Thread.sleep((long)(Math.random()*3000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class ThreadCreate {
public static void main(String[] args) {
CreateByThread cbt=new CreateByThread();
Thread cbr=new Thread(new CreateByRunnable());
cbt.start();
cbr.start();
}
}
运行结果如下:

red
红色
orange
yellow
橙色
green
blue
黄色
indigo
蓝色
purple
black
绿色
white
靛色
紫色
黑色
白色
可以看出,两个线程运行没有啥规律,相互竞争系统资源(CPU)运行。

java线程的常用方法如图所示:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: