线程(1)

我们在电脑中运行的一个网页,软件,这些都是一个进程,一个应用程序就是一个进程。而一个进程中会有多个线程,线程结束的时候进程不会结束,但是进程结束的时候线程一定会结束。
线程就是程序内部的一个独立的运行单位。
单线程:
单线程就是当一个程序执行完后才会执行另外一个程序,比如:
public class threadtest {

public static void main(String[] args) {
threadtest t=new threadtest();
t.a();

}

public void a(){
b();
System.out.println("AAA运行啦");
}
public void b(){
c();
System.out.println("BBB运行啦");
}
public void c(){
System.out.println("CCC运行啦");
}

}


这个程序的运行结果:
CCC运行啦
BBB运行啦
AAA运行啦

从程序中我们可以看到,在a()方法中条用了b()方法,所以只有当b()执行完毕后才会执行a();同理,当c()执行完后才会执行b();这样我们就得到了这样的结果。我们现在所写的程序一般都是单线程的程序。


public class threadtest extends Thread{

public static void main(String[] args) {
threadtest t=new threadtest();
t.d();

}

public void a(){

System.out.println("AAA运行啦");
}
public void b(){

try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("BBB运行啦");

}
public void c(){
System.out.println("CCC运行啦");
}
public void d(){
a();
b();
c();
System.out.println("都运行啦");
}

}

运行结果是:
AAA运行啦
BBB运行啦
CCC运行啦
都运行啦

即使我在其中休眠了三秒,程序还是一次执行的,但是这是把代码的调用放到了一个独立的运行单元,让多个调用并行执行,这也是多线程模型。

什么是多线程呢?就是多个调用并行执行,这就是多线程,可以多个同时执行;

那么,我们平常怎么来使用线程呢?一般我们都会继承一个Thread类,重写里边的run()方法来实现。

例如:

public class threadtest extends Thread{

public static void main(String[] args) {
threadtest t=new threadtest();
t.d();

}

public void a(){
System.out.println("AAA运行啦");
}
public void b(){
//c();

start();
System.out.println("start返回啦");
}
public void c(){
System.out.println("CCC运行啦");
}
public void d(){
a();
b();
c();
System.out.println("都运行啦");
}
public void run(){
try {
Thread.sleep(3000);//休眠3秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("BBB运行啦");
}
}
运行结果:
AAA运行啦
start返回啦
CCC运行啦
都运行啦
BBB运行啦

从运行结果我们可以看出,b()方法是独立执行的,并没有说b()执行完后才会执行c(),start()只是启动了线程,随即便会返回,并不需要执行完后返回。

当然还有一种方法就是通过Runnable接口实现,这里就不再举例。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值