Java基础——线程总结
Java基础——线程总结
一、线程是什么?
线程:一个程序里不同的运行路径。
二、怎样创建线程?
两种方法创建线程:
第一种
(1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享
(2)Thread myThread = new Thread(…) //參数为Runnable接口类型
(3)Runnable中仅仅有一个方法
public void run(){……} //用以定义线程执行体
另外一种
(1)定义一个Thread的子类并重写run()方法
class MyThread extends Thread {
public void run(){……}
}
(2)生成该类的对象
MyThread myThread = new MyThread (…)
三、能够对线程做哪些控制?
|
方法 |
功能 |
|
bool isAlive(myThread Thread) |
推断线程是否还“活”着,即线程是否还未终止。 |
|
int getPririty() |
获得线程的优先级数值 |
|
void setPriority(int NewPriority) |
设置线程的优先级数值 |
|
Thread.sleep(int sleepTime) |
指定当前线程的睡眠时间(单位:毫秒) |
|
void join() |
将当前线程与上一主线程合并,即A线程的a()方法调用了B线程。则让B线程结束,再恢复A线程继续运行。 |
|
void yield() |
让出CPU,当前线程进入就绪队列等待调度。 |
|
void wait() |
当前线程进入对象的wait pool。 |
|
void notify()/void notifyAll() |
唤醒对象的wait pool中的一个/全部等待线程。 |
四、辨析wait()与sleep()
之所以对这两个方法辨析,它们有个共同点——暂停线程的运行。但要说起它们的不同点。那还是挺多的。
不同点:
(1)Wait()是Object对象的方法;而Sleep(int sleepTime)是Thead()线程的方法。
(2)Wait()运行后,当前对象的锁就会被释放;而Sleep(int)运行后,锁仍然在其手中。
(3)Wait()不须要指定停留时间,须要notify()方法或notifyAll()方法将其唤醒;而Sleep(int),当中int指定睡眠的毫秒数,仅仅有在超过这个时间后。醒过来,当再次获得时间片之后,才干继续运行。
Java基础——线程总结的更多相关文章
- Java基础-线程安全问题汇总
Java基础-线程安全问题汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存泄漏和内存溢出(out of memory)的区别 1>.什么是内存溢出 答:内存溢出指 ...
- Java基础-线程操作共享数据的安全问题
Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...
- 《Java基础——线程类》
Java基础--线程类 一.线程的创建之Thread类: 规则: 通过声明一个新类作为子类继承 Thread 类,并复写 run() 方法,就可以启动新线程并执行自己定义的 run()方法 ...
- JAVA基础—线程池
推荐文章java多线程基础 线程池概述 为什么要使用线程池 1.服务器创建和销毁工作线程的开销很大 2.如果频繁的创建和销毁线程会导致频繁的切换线程,因为一个线程被销毁后,必然要把CPU转让给另一个已 ...
- java基础—线程(一)
一.线程的基本概念
- java基础—线程(二)
一.线程的优先级别
- Java基础--线程创建方式
线程的创建主要有两种形式,通过继承Thread或者实现Runnable接口,本质上没有太大区别. /** * @date: 2019/7/16 **/ public class ThreadOne i ...
- Java基础-线程与并发1
线程与并发 Thread 基本概念 程序: 一组计算机能识别和执行的指令 ,是静态的代码. 进程: 程序的一次运行活动, 运行中的程序 . 线程: 进程的组成部分,它代表了一条顺序的执行流. 进程线程 ...
- 面试题-Java基础-线程部分
1.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列.一个进程可以有多个线程.线程又叫做轻量级进程. 2.创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可 ...
随机推荐
- python3中使用xpath无法定位,为什么一直返回空列表?
tbody问题: 在爬去某些网站一些信息的时候,xpath工具上显示类容是正确的,但是在scrapy代码中一直返回空列表 Scrapy的部分代码: class LotteryspiderSpider( ...
- oracle 查看16进制
DUMP function is useful for this purpose. SQL> select dump(C1) from test; DUMP(C1)--------------- ...
- dijkstra算法模板及其用法
Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Di ...
- J2EE并发策略控制总结[zz]
本文结合hibernate以及JPA标准,对J2EE当前持久层设计所遇到的几个问题进行总结: 第一:事务并发访问控制策略 当前J2EE项目中,面临的一个共同问题就是如果控制事务的并发访问,虽然有 ...
- codevs1033 蚯蚓的游戏问题 裸最小费用最大流,注意要拆点
因为蚯蚓走过的路径不能重合,所以把每个点拆成两个点,容量赋为1,保证不会走过相同的点,再加超级源点(程序中为1)和一个辅助点(程序中为2)容量赋为k来控制蚯蚓的数量,最后汇集到一个超级汇点上.做一遍最 ...
- 背包系列练习及总结(hud 2602 && hdu 2844 Coins && hdu 2159 && poj 1170 Shopping Offers && hdu 3092 Least common multiple && poj 1015 Jury Compromise)
作为一个oier,以及大学acm党背包是必不可少的一部分.好久没做背包类动规了.久违地练习下-.- dd__engi的背包九讲:http://love-oriented.com/pack/ 鸣谢htt ...
- python 多继承详解
class A(object): # A must be new-style class def __init__(self): print "enter A" print &qu ...
- 初识Tomcat系统架构
俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核 ...
- 内网中让其他人访问我电脑上的asp.net应用程序
打开防火墙,高级配置,新建入站规则,选择“端口”,下一步,填写特定本地端口,然后都是点击下一步,命名规则,到此,内网中的其他人可以访问你的程序了
- React 16 升级时遇到的一个坑,分享一下
遇到的坑 今天在跟着dva.js官网上面的一个教程写东西的时候,照着教程上面的代码写之后,运行总是报错:TypeError: Cannot read property 'object' of unde ...