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多线程相关知识相关推荐

  1. Java多线程相关知识【17】--设计模式--上下文模式(Context)

    文章目录 Java多线程相关知识[17]--设计模式--上下文模式(Context) 1. 问题的引入 2. 解决方法 1. 解决理论 2. 实操代码 上下文数据保存 上文 下文 调度者 测试上下文 ...

  2. Java多线程相关的几十个问题

    转载来源:http://www.cnblogs.com/HadesFX/p/5333810.html , https://www.cnblogs.com/HadesFX/p/5333820.html ...

  3. java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理

    1 学习多线程知识的根本目标 多线程知识的根本目标是:设计稳健的并发程序. 当然,本文无法回答这个实践性很强的问题(这与具体的业务相关,涉及到具体的策略),本文主要阐述相关知识之间的关系,希望初学者不 ...

  4. Java并发相关知识(多线程、锁、容器、工具)

    目录 一.基础知识 线程之间如何通信? Java内存模型 内存屏障 顺序一致性 CAS实现原理 原子操作 volatile synchronized 实现原理 什么是锁 原子操作类说明 高性能原子类 ...

  5. Java多线程核心知识

    多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲.在平时工作中如若使用不当会出现数据错乱.执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关 ...

  6. java字符串相关知识

    文章目录 1 基本知识 1.1 String是否是基本类型? 1.2 创建String的方式 1.3 String.StringBuilder.StringBuffer之间的关系 2 常用工具类 2. ...

  7. Java多线程基础知识(一)

    Java多线程 一.Java线程模型 实现线程有三种方式:使用内核线程实现.使用用户线程实现和使用用户线程加轻量级进程混合实现.内核线程是直接由操作系统内核支持的线程,通过内核完成线程切换,内核通过操 ...

  8. Java多线程基础知识

    多线程基础知识 这是我再次学习多线程知识的一个总结,对于刚刚接触的学习者是比较友好易懂的,便于快速的理解和掌握. 一.基本概念: 1.进程:进程就是运行中的程序,当一个程序开始执行,操作系统就会给这个 ...

  9. 深入理解 Java 多线程核心知识:跳槽面试必备

    作为一个 Java 开发人员,多线程是一个逃不掉的话题,不管是工作还是面试,但理解起来比较模糊难懂,因为多线程程序在跑起来的时候比较难于观察和跟踪.搞懂多线程并发知识,可以在面试的时候和周围人拉开差距 ...

最新文章

  1. Java项目:在线宠物商店系统(java+SSM+mysql+maven+tomcat)
  2. Java大厂技术文档:Redis+Nginx+设计模式+Spring全家桶+Dubbo精选
  3. cppunit helloworld详尽篇
  4. ichat在线客服jQuery插件(可能是历史上最灵活的)
  5. windows平台下的反调试技术
  6. birt报表表格边框_选开源报表开发还是商用?2020报表软件产品整理
  7. CSS3 变换/变形(transform)
  8. react 将token充入_【React全家桶入门之十】登录与身份认证
  9. 深入浅出通信原理笔记(1)
  10. w ndows10隐藏桌面设置,Win10双击桌面隐藏/显示图标?这个可以有
  11. Node之HTTPS客户端
  12. visio安装报错 1:1935 2:{XXXXXXXX...
  13. SCSI硬盘系统无法启动取数据办法
  14. taptap评论爬虫
  15. 教你用安卓神器-APK编辑器(手机端)改程序名+去程序广告!
  16. 示例程序:关于双目视觉,标定,立体匹配(视差算法),点云,双目三维重建的原理以及代码
  17. Collectors简单使用
  18. JeeSite系列之一_JeeSite简介
  19. R之方差分析与秩和Kruskal-Wallis
  20. android技术分享方向,android开发分享在Android中计算指南针方位/标题到位置

热门文章

  1. 实用线性代数和凸优化 Convex Optimization
  2. 通过Spark listener实现Direct模式读取Kafaka数据
  3. java打印出继承体系的类(包括抽象类)、接口、域字段
  4. C++ 实现高精度的计算
  5. 对于表列数据类型选择的一点思考
  6. R语言报错:Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : n行没有x元素
  7. 如何在电脑上创建python_python怎么创建类Python中的除法
  8. windowsphone开发_[app开发定制公司]开发app需要什么技术呢?
  9. 开机自启动脚本_Linux配置开机自启动执行脚本的两种方法
  10. 中专是计算机专业毕业论文,中专计算机专业毕业论文内容