(三十)java多线程一

   我们通常在电脑中打开的应用称作进程,一个应用就是一个进程,而一个进程里边一般包含多个线程。

   系统要为每一个进程分配独立的内存空间,而进程里的多个线程共用这些内存。

   我们通常所写的main方法就是一个线程,独立的线程都是顺序执行的,但是多个线程同时存在的时候,却不一定是顺序执行,因为多线程在执行的时候会抢夺系统分配出来的时间片段,具有不确定性。

   创建线程有两种方式,一种是继承Thread,另一种是实现Runnable接口,例如下边的例子:

package demo1;

/**

 * 多线程练习1

 * @authortuzongxun

 *

 */

public class ThreadTest3 {

 publicstaticvoidmain(String[] args) {

    Thread111 thread111 = newThread111();

    Thread222 thread222 = newThread222();

   thread111.start();

    new Thread(thread222, "thread222").start();

  }

}

 

classThread111extends Thread {

  @Override

  public void run() {

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

      System.out.println(this.getName() + ":线程1");

    }

  }

}

 

classThread222implements Runnable {

  @Override

  public void run() {

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

      System.out.println(Thread.currentThread().getName() + "线程2");

    }

  }

}

如上代码创建线程的时候不论是继承Thread还是实现runnable接口一般都要重写run方法。

   线程启动是调用线程的start方法,线程还有sleep、join、wait等阻塞方法。

   线程一般有创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、死亡(dead)五种状态,也称作线程的生命周期。

   一般,阻塞状态的线程不能直接变成运行状态,而是会先就绪,然后才会在适当的时机运行。start方法之后,线程就会处于就绪状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值