文档章节

2017.09.05(2)多线程

h3
 h3
发布于 2017/09/05 17:57
字数 635
阅读 6
收藏 0

在java 中要想实现多线程代码有两种手段,一种是继承 Thread 类,

另一种是实现 Runnable 接口。

Thread 类是在 java.lang 包中定义的,一个类只继承了 Thread 类,此类就称为多线程操作类。

在Thread 子类中,必须明确地覆写 Thread 类中的 run() 方法,此方法为线程的主体。

正确地启动线程,必须调用从 Thread 类中继承而来的 start() 方法。

一个类通过继承 Thread 类来实现,那么只能调用一次 start() 方法,如果多次调用将会抛出。。导演

实现 Runnable 接口

在 Java 中也可能通过实现 Runnable 接口的方式实现多线程,Runnable接口中只定义了一个抽象方法

public void run();

在 Thread 类中,提供了 public Thread(Runnable target)  和 public Thread(Runnable target,String name) 两个构造方法,来接收 Runnable 的子类实例对象

所以: new Thread(Runnable 的子类对象).start();

要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有5种状态,即:创建、就绪、运行、阻塞、终止。

在 Thread 类中可以通过 getName() 方法取得线程的名称,还可以通过 setName() 方法设置线程的名称

在线程操作中,可以使用 join() 方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行。

直接使用 Thread.sleep() 方法即可实现休眠。

当一个线程运行时,另外一个线程可以直接通过 interrupt() 方法中断其运行状态。

在 Java 程序中,只要前台有一个线程在运行,则整个 Java 进程都不会消失,所以此时可以设置一个后台线程,这样即使 Java 进程结束了,此后台线程依然会继续执行。要想实现宋的操作,直接使用 setDaemon() 方法即可。

class MyThread implements Runnable{
	public void run(){
		while(true){
			System.out.println(Thread.currentThread().getName() + "在运行");
		}
	}
}
public class Task33{
	public static void main(String args[]){
		MyThread my = new MyThread();
		Thread t1 = new Thread(my,"线程");
		t1.setDaemon(true);
		t1.start();
		System.out.println("主方法结束了吧");
	}
}

在线程的操作中,也可以使用 yield() 方法将一个线程的操作暂时让给其他线程执行。

同步代码块与同步方法

同步代码块格式:synchronized(同步对象){ 需要同步的代码;}

同步方法格式:synchronized 方法返回值 方法名称(参数列表){ 方法主体 }

 

 

 

© 著作权归作者所有

共有 人打赏支持
h3

h3

粉丝 6
博文 47
码字总数 16408
作品 0
福州
程序员
Posix多线程编程学习笔记

Posix多线程编程学习笔记(一)—线程基础(1) http://blog.chinaunix.net/u/22935/showart310711.html Posix多线程编程学习笔记(一)—线程基础(2) http://blog.chinaunix.net/u/22935/...

晨曦之光
2012/04/13
163
0
秒杀多线程第一篇 多线程笔试面试题汇总

系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同...

长平狐
2012/12/10
136
0
秒杀多线程第一篇 多线程笔试面试题汇总

系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同...

晨曦之光
2012/05/21
159
0
秒杀多线程第一篇 多线程笔试面试题汇总

系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同...

彭博
2012/04/12
441
0
Android多线程:继承Thread类 & 实现Runnable接口 使用解析(含实例教程)

前言 在开发中,多线程的使用十分常见 今天,我将全面解析多线程中最常见的2种用法:继承类 & 实现接口 Part 1:继承Thread类 目录 1. 简介 class MyThread extends Thread{ // 步骤2:复写r...

carson_ho
05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用

人工智能和机器学习是全球关注的新趋势,也是当前最火爆、最流行的话题。当你拿手机用语音助手帮你点外卖,智能推荐帮你把周边美食一网打尽;当你拿起P20拍照时,它将自动识别场景进行最美优...

华为终端开放实验室
36分钟前
1
0
匹配两位小数,js正则

var regex = /^\d*(\.[1-9]|\.\d[1-9])*$/ console.log(1.2,regex.test(1.2)); console.log(0.3,regex.test(0.3)); console.log(1.03,regex.test(1.03)); ......

微信小程序-暗潮
41分钟前
1
0
905. Sort Array By Parity - LeetCode

Question 905. Sort Array By Parity Solution 题目大意:数组排序,偶数放前,奇数在后,偶数的数之间不用管顺序,奇数的数之间也不用管顺序 思路:建两个list,一个放偶数,一个放奇数,最...

yysue
45分钟前
1
0
h5 禁止手机自带键盘弹出

html: <div style="width: 350px;margin:50px auto;"><input type="text" id="datePicker" class="date_picker form-control" placeholder="点击选择入住日期" /></div> js: $("#date......

Delete90
今天
1
0
color透明度对照表

透明度百分比 数值 100% 不透明 FF 95% F2 90% E6 85% D9 80% CC 75% BF 70% B3 65% A6 60% 99 55% 8C 50% 80 45% 73 40% 66 35% 59 30% 4D 25% 40 20% 33 15% 26 10% 1A 5% 0D 0% 完全透明 ......

_无问西东
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部