java多线程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java多线程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1918字,纯文字阅读大概需要3分钟。
内容图文
一、程序、进程、线程的定义
程序: 一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本。
进程: 是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命
周期。 它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在
一定的数据 集上运行的全部动态过程。通过进程控制块(PCB)唯一的标识某个进程。同时进程占据着相应的资源(例如包
括cpu的使用 ,轮转时间以及一些其它设备的权限)。是系统进行资源分配和调度的一个独立单位。
线程: 一个线程是进程的一个顺序执行流。可以理解为进程的多条执行线索,每条线索又对应着各自独立的生命周期。
线程是进程的一个实体,是CPU调度和分派的 基本单位,它是比进程更小的能独立运行的基本单位。
线程的状态转化图
进程和线程的区别
二、java中的线程
1.线程的创建和启动
1)方式一:继承Thread类
可以通过创建Java.lang.Thread的实例来创建新的线程;
每个线程都是通过某个特定的Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体;
通过调用Thread类的start()方法来启动一个线程。
继承Thread创建并启动,demo:
public class TestThread{ public static void main(String[] args) { // 创建子类对象 Rabbit rab = new Rabbit(); //创建子类对象 Tortoise tor =new Tortoise(); //调用start 方法,不要调用run方法 rab.start(); tor.start(); } } /** * 模拟龟兔赛跑 1、创建多线程 继承Thread +重写run(线程体) 2、使用线程: 创建子类对象 + 对象.start() 线程启动 * * @author Chaosju * */publicclass Rabbit extends Thread { @Override publicvoid run() { //线程体for(int i=0;i<100;i++){ System.out.println("兔子跑了"+i+"步"); } } } class Tortoise extends Thread { @Override publicvoid run() { //线程体for(int i=0;i<100;i++){ System.out.println("乌龟跑了"+i+"步"); } } }
注:
推荐使用方式二:实现Runable接口
1.避免单继承的局限性
2.便于共享资源
2)方式二:实现Runable接口
定义线程类实现Runable接口,重写run()方法;
可以通过创建Java.lang.Thread的实例来创建新的线程;
通过调用Thread类的start()方法来启动一个线程。
实现Runable创建并启动,demo:
/* 使用 Runnable 创建线程 1、类实现 Runnable接口 +重写 run() -->真实角色类 2、启动多线程 使用静态代理 1)、创建真实角色 2)、创建代理角色 +真实角色引用 3)、调用 .start() 启动线程 */ public class Programmer implements Runnable { @Override publicvoid run() { for(int i=0;i<1000;i++){ System.out.println("一边敲helloworld...."); } } } publicclass ProgrammerApp { publicstaticvoid main(String[] args) { //创建线程类(真实角色) Programmer pro =new Programmer(); //创建代理角色 +真实角色引用 Thread proxy =new Thread(pro); //调用 .start() 启动线程 proxy.start(); for(int i=0;i<1000;i++){ System.out.println("一边聊qq...."); } } }
原文:http://www.cnblogs.com/ChaosJu/p/4528895.html
内容总结
以上是互联网集市为您收集整理的java多线程全部内容,希望文章能够帮你解决java多线程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。