博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Java Concurrency》读书笔记,Java并发编程实践基础
阅读量:5223 次
发布时间:2019-06-14

本文共 1116 字,大约阅读时间需要 3 分钟。

1. 基本概念

程序,是一组有序的静态指令,是一种静态的概念。程序的封闭性是指程序一旦运行,其结果就只取决于程序本身;程序的再现性是指当机器在同一数据集上重复执行同一程序时,机器内部的动作系列完全相同,最后获得的结果也相同。

进程,是一种活动,它是由一个动作系列组成,每个动作是在某个数据集上执行一段程序,整个活动结果是提供一处系统或用户功能。进程一般由三部分组成:程序、数据集合、进程控制块(PCB)。进程具有并发性和不确定性。

线程,是一个进程内部的顺序控制流。线程本身不能独立运行,必须在进程中执行,使用进程的地址空间。一个进程内部包含多个顺序控制流,或者并发执行多种运算,就是多线程。

创建进程的高消耗(每个进程都有独立的代码与数据空间),进程之间通信不方便(消息机制),进程切换的时间太长这些特性导致了多线程的提出。

进程和程序的区别

进程是程序的一次运行活动,属于一种动态的概念。

一个进程可以执行一个或多个程序。

程序可以作为一种软件资源长期保持着,而进程则是一次执行过程。

2.创建多线程

参考:

3.线程的基本控制

start()

该方法启动线程。

sleep()

该方法暂停执行,可以以毫秒、纳秒指定睡眠时间,但并不保证这些睡眠时间的精确性。中断(interrupt)可以终止睡眠时间。

suspend()

resume()

join()

该方法让一个线程等待另一个线程的完成。如果t1、t2是两个Thread对象,在t1中调用t2.join(),会导致t1暂停执行,直到t2线程的终止。join的重载版允许指定等待的时间,同样,它是不精确的。

interrupt()

该方法中断线程的执行,一般由外部线程(或主线程)调用,自身或者通过try/catch捕获,或者通过循环捕获。

@Overridepublic void run() {    ...    try {        Thread.sleep(10000);    }catch(InterruptedException ex) {        // handle with exception...        return;      }   ...          }
@Overridepublic void run() {    ...    while(!Thread.interrupted) {        // process...    } ...       }

stop()

强迫线程停止执行,已经不赞成使用。

转载于:https://www.cnblogs.com/nayitian/p/3316154.html

你可能感兴趣的文章
状态码
查看>>
100735D
查看>>
双击文本变成输入框,日历控件
查看>>
C++-多态,纯虚函数,抽象类,工厂模式,虚析构函数(day10)
查看>>
枚举GC Roots根节点
查看>>
java面试题1
查看>>
Leetcode: Jump Game II
查看>>
jsp/servlet中的相对路径
查看>>
注册表单模板设计
查看>>
PHP魔术方法
查看>>
source insight 中文注释为乱码解决
查看>>
设置时区
查看>>
友情链接
查看>>
JVM 内部原理(六)— Java 字节码基础之一
查看>>
Qualcomm_Mobile_OpenCL.pdf 翻译-6-工作组尺寸的性能优化
查看>>
VS2008 新建网站时没有模板解决办法
查看>>
数据库外键的使用以及优缺点
查看>>
集合用例
查看>>
linux开启数据库远程连接
查看>>
新浪微博布局学习——妙用TabHost
查看>>