第七章 线程
来源:互联网 发布:非农数据从哪里看 编辑:程序博客网 时间:2024/06/13 04:41
进程:一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
线程:进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存空间,使得线程间的通信笔记比较容易。多线程指的是同时运行多个线程以执行不同任务。所谓同时,也依据cpu,多个并列执行,单个则根据系统情况决定,如通过时间片切换cpu的任务或抢占。
8.1 线程的创建
1、通过Runable接口的方式创建线程
Thread t = new Thread(runable对象);t.start();
runable对象是实现了这个接口的对象,当线程执行时会调用对象中的run()方法;
public class computer implements Runable{ public void run(){ }}public class test{ public static void main(String [] args){ Thread t = new Thread(new compuer()); t.start(); }}
2、通过继承Thread类来创建线程,覆写run()方法
public class computer extends Thread{ public void run(){ }}public class test{ public static void main(String [] args){ computer c =new computer(); c.start(); }}
8.2 线程的使用
线程的执行是一种抢占的方式,优先级高的获得更多的执行时间,可通过设置优先级来调整
public final void setPriority(int newPriority);值1-10级,默认5级
线程的休眠是指暂时处于一种等待状态。
public static native void sleep(long millis);
线程的唤醒是指从休眠等待状态进入执行状态
public static void interruput();
线程的让步指使当前正在运行的线程对象退出运行状态,让其他线程运行。
public static void yield();
线程的同步,线程的运行权通过抢占的方式获得,一个程序在运行到一半时,被别的线程抢占了,此时这个数据处理了一半,而另一个也是处理这个数据,结果混乱了。解决方法是同步块,另一种是同步方法
1、同步块:
同步块是使用某个对象监视点的线程,获得权限的一种方法。如几个人吃饭,只有一双筷子,这个筷子相当于童年不块的监视点。
synchronized(someobject){ ..... }//someobject是一个监视对象,可以是实际的也可以是假//设的(new Object())。
2、同步方法:同步方法就是对整个方法进行同步
synchronized void test(){ ......}
- 第七章-----线程
- 第七章 线程
- windows核心编程第七章--线程调度
- 第七章:线程调度,优先级和关联性
- 第七章:线程调度、优先级、和关联性
- 第七章 线程调度、优先级和关联性
- 读书笔记:第七章 线程的调度、优先级和亲缘性
- 第七章 Future,Promise and async()——线程通信
- 第七部分 线程间通信
- 第七部分 线程间通信
- java线程第七课:线程池
- 第七章
- 第七章
- 第七章
- 第七章
- 第七章
- 第七章
- 第七章
- Kotlin 第十一章:扩展
- Linux(Centos)之安装Nginx及注意事项 阅读目录 1.Nginx的简单说明 2.准备工作 3.安装SSL功能需要openssl库以及gzip模块需要的zlib库 4.安装 rewri
- Mysql中剔除重复字段并按主键降序排序后找出主键值最大的数据
- POJ 1006 Chinese Remainder Theory
- Qt如何执行bash命令,并获取返回结果
- 第七章 线程
- ViewTreeObserver
- libcurl学习笔记
- Android Studio中两个Activity之间的转换及数据的传递
- nginx学习随笔--sendfile
- 生成指定大小文件供测试
- Leetcode c语言-Longest Common Prefix
- CSS编码技巧
- JavaScript运行原理解析