博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(三十)java多线程一
阅读量:6440 次
发布时间:2019-06-23

本文共 1025 字,大约阅读时间需要 3 分钟。

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

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

   我们通常所写的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方法之后,线程就会处于就绪状态。

转载地址:http://hiuwo.baihongyu.com/

你可能感兴趣的文章
9 Easy Steps for Successful Data Migration
查看>>
人工智能,不止于技术的革命--WOT2017全球创新技术峰会开幕
查看>>
mysql 在大型应用中的架构演变
查看>>
ibm系列文章 --> Windows 到 Linux 之旅
查看>>
全备份失败后,如何手工清除exchange日志文件,附微软KB
查看>>
java如何连接mysq之源码l讲解
查看>>
企业运维笔试考题(1)
查看>>
Mysql修改存储过程相关权限问题
查看>>
4.2权限管理
查看>>
彻底理解ThreadLocal
查看>>
Node.js~ioredis处理耗时请求时连接数瀑增
查看>>
企业如何走出自己的CRM非常之道?
查看>>
整合看点: DellEMC的HCI市场如何来看?
查看>>
联合国隐私监督机构:大规模信息监控并非行之有效
查看>>
韩国研制出世界最薄光伏电池:厚度仅为人类头发直径百分之一
查看>>
惠普再“卖身”,软件业务卖给了这家鼻祖级公司
查看>>
软件定义存储的定制化怎么走?
查看>>
“上升”华为碰撞“下降”联想
查看>>
如何基于Spark进行用户画像?
查看>>
光伏发电对系统冲击大 “十三五”电力规划重点增强调峰能力
查看>>