多线程:创建线程的方法
2019-05-07 16:09
281 查看
多线程:创建线程的方法
进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。
线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程
多线程:一个程序中有多个线程在同时执行。
创建线程:
方法1:继承Thread类。Thread是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。
创建线程的步骤:
1.定义一个类继承Thread。
2.重写run方法。
3.创建子类对象,就是创建线程对象。
4.调用start方法,开启线程并让线程执行,同时还会告诉jvm去调用run方法
例如:
[code]package com.itheima; public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 100; i++) { System.out.println(getName() + ":" + i); } } }
[code]package com.itheima_01; /* * 多线程的实现方式: * 方式1:一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。 *接下来可以分配并启动该子类的实例 * * Thread * String getName() 返回该线程的名称。 * void setName(String name) 改变线程名称,使之与参数 name 相同。 * * * CPU执行程序的随机性 */ public class ThreadDemo2 { public static void main(String[] args) { //创建线程实例 MyThread mt = new MyThread(); //修改线程名字 mt.setName("张三"); //启动线程 mt.start(); //创建线程实例 MyThread mt2 = new MyThread(); mt2.setName("老王"); //启动线程 mt2.start(); } }
方法2:实现Runnable接口
创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。
Runnable接口用来指定每个线程要执行的任务。包含了一个 run 的无参数抽象方法,需要由接口实现类重写该方法。
创建线程的步骤:
1、定义类实现Runnable接口。
2、覆盖接口中的run方法。。
3、创建Thread类的对象
4、将Runnable接口的子类对象作为参数传递给Thread类的构造函数。
5、调用Thread类的start方法开启线程。
例如:
[code]package com.itheima; public class MyThread2 implements Runnable { int num; public MyThread2(int num) { this.num = num; } @Override public void run() { for (int i = 0; i < 100; i++) { //Thread t = Thread.currentThread(); //System.out.println(t.getName() + ":" + i); //链式编程 System.out.println(Thread.currentThread().getName() + ":" + i + num); } } }
[code]package com.itheima; public class ThreadDemo2 { public static void main(String[] args) { //创建线程实例 MyThread2 mt = new MyThread2(); Thread t = new Thread(mt); t.setName("李四"); //启动线程 t.start(); //创建线程实例 MyThread2 mt2 = new MyThread2(); Thread t2 = new Thread(mt2); t2.setName("老王"); //启动线程 t2.start(); } }
相关文章推荐
- [java多线程]创建线程的两个方法
- 多线程————2————创建线程的第二种方法
- 多线程委托之跨线程问题分析--在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke(解决方法已更新)
- 多线程之线程创建的两种方法(Java)
- Java多线程(一)——线程创建的两种方法
- 多线程基础知识第一篇:创建线程的方式及线程常用的方法
- 黑马程序员--04.多线程--03.【创建线程两种方法的对比】【多线程卖票案例设计】
- 多线程——线程的创建以及操作线程的相关方法简介
- Java多线程――之一创建线程的四种方法
- 多线程——线程的创建以及操作线程的相关方法简介
- 多线程(一):创建线程和线程的常用方法
- Java多线程 创建线程的两种方法
- Java6学习笔记55——多线程编程——线程的创建方法1
- 多线程(创建线程的方法)
- 创建多线程有几种方法?如何创建线程?
- Java基础:多线程(1)--线程的概述、创建线程的方式、线程的多种状态、线程常用的方法
- Java6学习笔记56——多线程编程——线程的创建方法2
- C#构建多线程应用程序(1) —— 使用委托来自动创建次线程以实现异步方法的调用
- 05-多线程(多线程创建的方式一-继承Thread类)1 2 06-多线程(Thread类中的方法&线程名称) 08-多线程(线程的状态)图解
- 多线程中创建线程的几种方法