1、Java多线程-线程与进程的区别

(1)线程:程序中单独依靠程序进行运行

线程是程序中的顺序控制流,只能使用分配给程序的资源和环境。

(2)进程:执行中的程序

一个进程可以包含一个或多个线程。

一个进程至少要包含一个线程。

(3)单线程:程序中只存在一个线程,实际上主方法就是一个主线程。

(4)多线程:

多线程是在一个程序中运行多个任务。

多线程的目的是更好的使用CPU资源。

2、Java多线程-线程的实现

(1)在Java 中。线程的实现有2种:继承Thread类和实现Runnable 接口

(2)Thread类:~ 是在java.lang 包中定义的,继承~ 类必须重写run()方法。

定义格式:

class className extends Thread {  run() { };   }
public class MyThread extends Thread{
private String name;
public MyThread(String name){
this.name=name;
}
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println(name+":"+i);
}
super.run(); public class ThreadDemo01 { public static void main(String[] args) {
MyThread t1=new MyThread("A");
MyThread t2=new MyThread("B");
t1.run();
t2.run();
//线程的启动是通过start()。
t1.start();
t2.start();

“A和B是并发执行哦啊”

(3)Runnable 接口

public class MyRunnable implements Runnable{
private String name;
public MyRunnable(String name){
this.name=name;
}
public void run(){
for (int i = 0; i < 1000; i++) {
System.out.println(name+":"+i);
public class ThreadDemo01 {
MyRunnable r1=new MyRunnable("A");
MyRunnable r2=new MyRunnable("B");
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
t1.start();
t2.start();

3、Java多线程-线程的状态

(1)创建状态:准备好了一个多线程的对象。即new 了一个Thread 对象。

(2)就绪状态:调用了start()方法,等待CPU进行调度。

(3)运行状态:执行 run () 方法

(4)阻塞状态:暂时停止执行,可能将资源交给其他线程使用。

(5)终止状态:(死亡状态):线程销毁。

4、Java多线程-线程的常用方法

(1)取得线程名称:getName ()

(2)取得当前线程对象:currentThread()

(3)判断线程是否启动:isAlive()

(4)线程的强行运行:join()

(5)线程的休眠:sleep()

(6)线程的礼让:yield()

5、Java多线程-线程的优先级

(1)优先级顺序设置:

1-MIN_PRIORITY

10-MAX_PRIORITY

5-NORM_ PRIORITY

如果什么都不设置默认值是5

6、Java多线程-线程同步与死锁

(1)同步代码块:在代码块上加上“synchronized”关键字,则此代码块就称为同步代码块。

(2)同步代码块格式:synchronized(同步对象){   需要同步的代码块;   } (记住:资源共享的时候需要同步。)

(3)同步方法:除了代码块可以同步,方法也是可以同步的。

(4)方法同步格式:synchronized void 方法名称(){}

(5)死锁:学生找工作(高薪)

企业需要你有工作经验(经验)

若无经验又要高薪,即发生死锁。解决死锁只需要一方降低要求即可。

7、Java多线程-线程生命周期

08-Java 多线程编程的更多相关文章

  1. 《java多线程编程核心技术》不使用等待通知机制 实现线程间通信的 疑问分析

    不使用等待通知机制 实现线程间通信的 疑问分析 2018年04月03日 17:15:08       ayf 阅读数:33 编辑 <java多线程编程核心技术>一书第三章开头,有如下案例: ...

  2. Java多线程编程核心技术---学习分享

    继承Thread类实现多线程 public class MyThread extends Thread { @Override public void run() { super.run(); Sys ...

  3. Java多线程编程核心技术---对象及变量的并发访问(二)

    数据类型String的常量池特性 在JVM中具有String常量池缓存的功能. public class Service { public static void print(String str){ ...

  4. Java多线程编程——进阶篇二

    一.线程的交互 a.线程交互的基础知识 线程交互知识点需要从java.lang.Object的类的三个方法来学习:    void notify()           唤醒在此对象监视器上等待的单个 ...

  5. Java多线程编程详解

    转自:http://programming.iteye.com/blog/158568 线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题.Ja ...

  6. 【Todo】【读书笔记】Java多线程编程指南-设计模式篇

    下了这本书<Java多线程编程指南-设计模式篇>, 还有另一本<JAVA多线程设计模式>,据说内容有重复,结合着看.

  7. Java多线程编程总结(学习博客)

    Java多线程编程总结:网址:http://lavasoft.blog.51cto.com/62575/27069/

  8. Java多线程编程的常见陷阱(转)

    Java多线程编程的常见陷阱 2009-06-16 13:48 killme2008 blogjava 字号:T | T 本文介绍了Java多线程编程中的常见陷阱,如在构造函数中启动线程,不完全的同步 ...

  9. Java多线程编程(二)

    在 Java多线程编程(一) 中的多线程并没有返回值,本文将介绍带返回值的多线程. 要想有返回值,则需要实现新的接口Callable而不再是Runnable接口,实现的方法也改为call()方法,执行 ...

  10. Java多线程编程总结(精华)

    Java多线程编程总结 2007-05-17 11:21:59 标签:多线程 java 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http ...

随机推荐

  1. 算法导论 第六章 思考题6-3 Young氏矩阵

    这题利用二叉堆维持堆性质的办法来维持Young氏矩阵的性质,题目提示中写得很清楚,不过确实容易转不过弯来. a,b两问很简单.直接看c小问: 按照Young氏矩阵的性质,最小值肯定在左上角取得,问题在 ...

  2. 自己搭建Wifi Pineapple Mark V

    创业搞得自己很累,不过一切都是值得的.抽空写下文章,确实好久未更新了. 前段时间由于项目需要,所以就折腾了下wifi pineapple.时间间隔有点久,根据回忆记录下. 淘宝货:TP-Link TL ...

  3. 设置vs2008代码区的背景色

    编写程序.调试代码时,是不是感觉文字的白色背景有些刺眼呢?vs2008 给我们提供了改变背景色的功能. 依次展开:工具->选项->环境->字体和颜色,在“显示项--纯文本--项背景色 ...

  4. linux命令:rm

    1.介绍: rm用来删除文件或者目录,对于链接文件,只删除了链接,不删除源文件.rm是一个非常危险的命令,像rm -rf /这个命令运行后,后果不堪设想. 2.命令格式: rm [选项] 文件/目录 ...

  5. Objective-C determine data network type of the iOS device

    Im on an application that receive data from server, the problem is when user connect to cellular dat ...

  6. Android PermissionChecker 权限全面详细分析和解决方案

    原文: http://www.2cto.com/kf/201512/455888.html http://blog.csdn.net/yangqingqo/article/details/483711 ...

  7. Gmail邮箱添加域名解析

    主机记录  MX   服务器地址 优先级@  MX   ASPMX.L.GOOGLE.COM. 10@  MX   ALT1.ASPMX.L.GOOGLE.COM. 20@  MX   ALT2.AS ...

  8. dbd到mongo的序列化问题及稳定性

    最近工作压力有点大,情绪偶然会失控,要好好反省一下自己. 上周本来打算写CSP相关的东西,但是目前做得还不够多,积累的经验不足,就放弃了.中间找到很好的参考资料,一并放在这里.一篇是比较短的论文,可以 ...

  9. USB协议-USB的包结构及包的分类

    USB是串行总线,所以数据是一位一位地在数据线上传送的.既然是一位一位地传送,就存在着一个数据位先后的问题.USB使用的是LSB在前的方式,即先出来的是最低位数据,接下来是次低位,最后是最高位(MSB ...

  10. 解决github push错误The requested URL returned error: 403 Forbidden while accessing

    来源:http://blog.csdn.net/happyteafriends/article/details/11554043 github push错误: git push error: The  ...