Java多线程相关知识
1)wait() notify() sleep()
sleep是Thread类的函数,wait和notify是Object的函数。
sleep的时候keep对象锁,wait的时候release 对象锁。
sleep时监控状态依然保持。wait进入等待池,只有针对该对象发出了notify才会进入对象锁池。
Sleep时间过了就会恢复运行,wait后等到notify了,也不一定是立即运行。
Wait和notify是非static函数,sleep是Thread类的static函数。
2)stop() destroy() suspend()
都是Thread类的函数,都不推荐使用。
stop放弃了所有的lock,会使得对象处于一种不连贯状态。
destroy的时候如果还keep了某些资源的lock,那就死定了
suspend会继续持有所有的lock,容易发生死锁。
3)创建线程:
继承Thread类,override它的abstract函数run
实现Runnable接口,写run函数。
4)让线程跑起来:
start()函数
5)例子:四个线程,两个inc,两个dec,没有顺序:
public class ThreadTest {
private int j;
public static void main(String[] args) {
ThreadTest tt=new ThreadTest();
Inc inc= tt.new Inc();
Dec dec= tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()
+"-inc:"+j);
}
private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName()
+"-dec:"+j);
}
class Inc implements Runnable{
public void run() {
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec implements Runnable{
public void run() {
for(int i=0;i<100;i++){
dec();
}
}
}
}
转载于:https://www.cnblogs.com/yunger/p/5760080.html
Java多线程相关知识相关推荐
- Java多线程相关知识【17】--设计模式--上下文模式(Context)
文章目录 Java多线程相关知识[17]--设计模式--上下文模式(Context) 1. 问题的引入 2. 解决方法 1. 解决理论 2. 实操代码 上下文数据保存 上文 下文 调度者 测试上下文 ...
- Java多线程相关的几十个问题
转载来源:http://www.cnblogs.com/HadesFX/p/5333810.html , https://www.cnblogs.com/HadesFX/p/5333820.html ...
- java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理
1 学习多线程知识的根本目标 多线程知识的根本目标是:设计稳健的并发程序. 当然,本文无法回答这个实践性很强的问题(这与具体的业务相关,涉及到具体的策略),本文主要阐述相关知识之间的关系,希望初学者不 ...
- Java并发相关知识(多线程、锁、容器、工具)
目录 一.基础知识 线程之间如何通信? Java内存模型 内存屏障 顺序一致性 CAS实现原理 原子操作 volatile synchronized 实现原理 什么是锁 原子操作类说明 高性能原子类 ...
- Java多线程核心知识
多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲.在平时工作中如若使用不当会出现数据错乱.执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关 ...
- java字符串相关知识
文章目录 1 基本知识 1.1 String是否是基本类型? 1.2 创建String的方式 1.3 String.StringBuilder.StringBuffer之间的关系 2 常用工具类 2. ...
- Java多线程基础知识(一)
Java多线程 一.Java线程模型 实现线程有三种方式:使用内核线程实现.使用用户线程实现和使用用户线程加轻量级进程混合实现.内核线程是直接由操作系统内核支持的线程,通过内核完成线程切换,内核通过操 ...
- Java多线程基础知识
多线程基础知识 这是我再次学习多线程知识的一个总结,对于刚刚接触的学习者是比较友好易懂的,便于快速的理解和掌握. 一.基本概念: 1.进程:进程就是运行中的程序,当一个程序开始执行,操作系统就会给这个 ...
- 深入理解 Java 多线程核心知识:跳槽面试必备
作为一个 Java 开发人员,多线程是一个逃不掉的话题,不管是工作还是面试,但理解起来比较模糊难懂,因为多线程程序在跑起来的时候比较难于观察和跟踪.搞懂多线程并发知识,可以在面试的时候和周围人拉开差距 ...
最新文章
- Java项目:在线宠物商店系统(java+SSM+mysql+maven+tomcat)
- Java大厂技术文档:Redis+Nginx+设计模式+Spring全家桶+Dubbo精选
- cppunit helloworld详尽篇
- ichat在线客服jQuery插件(可能是历史上最灵活的)
- windows平台下的反调试技术
- birt报表表格边框_选开源报表开发还是商用?2020报表软件产品整理
- CSS3 变换/变形(transform)
- react 将token充入_【React全家桶入门之十】登录与身份认证
- 深入浅出通信原理笔记(1)
- w ndows10隐藏桌面设置,Win10双击桌面隐藏/显示图标?这个可以有
- Node之HTTPS客户端
- visio安装报错 1:1935 2:{XXXXXXXX...
- SCSI硬盘系统无法启动取数据办法
- taptap评论爬虫
- 教你用安卓神器-APK编辑器(手机端)改程序名+去程序广告!
- 示例程序:关于双目视觉,标定,立体匹配(视差算法),点云,双目三维重建的原理以及代码
- Collectors简单使用
- JeeSite系列之一_JeeSite简介
- R之方差分析与秩和Kruskal-Wallis
- android技术分享方向,android开发分享在Android中计算指南针方位/标题到位置
热门文章
- 实用线性代数和凸优化 Convex Optimization
- 通过Spark listener实现Direct模式读取Kafaka数据
- java打印出继承体系的类(包括抽象类)、接口、域字段
- C++ 实现高精度的计算
- 对于表列数据类型选择的一点思考
- R语言报错:Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : n行没有x元素
- 如何在电脑上创建python_python怎么创建类Python中的除法
- windowsphone开发_[app开发定制公司]开发app需要什么技术呢?
- 开机自启动脚本_Linux配置开机自启动执行脚本的两种方法
- 中专是计算机专业毕业论文,中专计算机专业毕业论文内容