01线程是一个程序里不同的执行路径

public class{
  public static void main(String[] args){
      m1();
  }
  public static void m1(){
      m2(); 
     m3();
 }
  public static void m2(){}
  public static void m3(){}

}

输出结果


程序执行流程

线程执行图




线程相关问题

1.线程是一个程序里不同的执行路径

2.每一个分支都是线程,你看我们的mian方法,就是主分支,又叫主线程。

3.什么叫真正的线程?   你的cpu是双核的,确确实实时多线程

4.Web浏览器执行后也是多线程的?  是的,你看你可以通过web听音乐,玩网页游戏。

5.线程启动 必须使用 start这个方法因为它会通知CPU,我现在有个新线程啦。你老人家什么时候给我点时间片,呵呵。



进程和线程



1..进程是一个静态的概念, 在我们机器里运行的是线程,机器上运行的一个 class、exe文件,这叫做一个进程

2.有人说进程是一个可以执行的,   这个严格来说是不正确的,

3.我们用的 XP系统有多少个进程?   这个不好说,少说有20多个进程吧。  doc下的系统,是单进程的。 在同一时间点只能有一个进程能运行,

     XP 多线程多进程单用户, linux多线程多进程多用户


其他话题:只要能使用接口,就不要使用从Thread继承。


 2.一般程序先执行子线程,再执行主线程(方法调用)

public class TestThread {
	public static void main(String args[]){
		Runner1 r = new Runner1();
		//r.run();    		
                Thread t = new Thread(r);    //把 Thread  和t.start(); 注释掉,使用r.run ,会先执行run中的结果
		t.start();   //线程启动 必须使用 start这个方法。
		
		for(int i=0; i<100; i++){
			System.out.println("Main Thread:--------" + i);
		}
	}
}

class Runner1 implements Runnable{
	public void run(){
		for(int i=0; i<100; i++){
			System.out.println("Runner1 :" + i);
		}
	}
}


输出结果为:并行运行

。。。。。省略, 后面是<100的运行

图解:并行运行 


三、 线程的创建和启动

1实现Runnable接口(常用)

设计一个实现Runable接口的类,根据需要重写run方法;

建立该类的对象,以此对象为参数建立Thread类的对象;

调用Thread类对象start方法启动线程,将执行权转交到run方法。

2继承Thread类 

定义一个从Thread类继承的子类并重写其run方法

然后生成该类的对象,调用Thread类对象start方法启动线程




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值