进程是指运行中的应用程序,每一个进程都有自己的独立内存空间,线程是指进程中能够独立执行的控制流。
线程的创建主要有两种方法,一个是继承
Thread类,重写run方法;另一个是继承
Runnable接口,实现run接口。实现Runnable接口的对象代表的是一个计算任务,这个任务可以交由其他线程(如线程池的线程)来执行。因此,Runnable对应要完成的任务,Thread对应任务的执行者。
线程的生命周期中有四种状态:
新建、就绪、阻塞、死亡。其中就绪状态是调用了start()方法后的状态,在这个状态中的任意时刻线程可以运行也可以不运行,只要调度器把时间片分配给线程,线程就可以运行,java不区分就绪和运行状态。
线程的同步方法有几种,其中比较常用的是
synchronized关键字和
同步锁lock的实现类,synchronized是自动获取锁和释放锁的,lock是手动。对于一些线程不安全的类,有些是有线程安全的实现的,例如容器类和基本类型都有,这些会在以后《java 并发编程实践》中详细说到的。
线程的调度方法也有几种:
sleep()方法,线程在一定的时间内进入阻塞状态,期间由监视器来监视,到时间会唤醒线程,此方法不区分优先级,不会释放锁;
yield()方法,不确保一定进入阻塞状态,有可能调用了这个方法后这个线程还在运行。另外它只会给优先级等于或者大于自身的线程有机会获取运行机会。
wait()方法和notify、notifyAll方法一起用在同步方法中,也只有在同步方法中才有效。调用wait方法的线程会释放锁,并进入等待队列,notify方法会随机唤醒一个在等待队列中的线程,notifyAll方法会唤醒所有等待队列中的线程。 也可以设置线程的优先级,
优先级有1~10级,有3个静态常量表示1、5、10级,主线程和由主线程创建的线程默认是5级。最后,一个线程可以在其他线程上调用join()方法,则当前运行的线程将被挂起,直到目标线程运行结束,它才恢复运行。
线程也分为
守护线程(后台线程,如垃圾收集)和非守护线程,主线程和由主线程创建的线程默认是非守护线程,当所有非守护线程运行结束,不管守护线程是否都结束都要退出程序。
分享到:
相关推荐
第十一章 并发控制.ppt
第十一章 并发控制 (2).ppt
空间数据库课件:第十一章 并发控制.ppt
数据库原理第十一章并发控制PPT学习教案.pptx
数据库第四版答案(王珊萨师煊)第11章并发控制[参照].pdf
数据库系统概论第十一章并发控制PPT学习教案.pptx
数据库系统概论:第11章 并发控制.ppt
数据库系统概论---第十一章并发控制.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
数据库第四版答案(王珊萨师煊)第11章并发控制.pdf
并发控制,数据库,武汉科技大学
ppt课件,非常详细,平均每章100多页。适合参考学习使用。
数据库 <h1><h1>数据库 <h1><h1>数据库 <h1><h1>数据库 <h1><h1>数据库 <h1>
习题答案 第1章绪论 第2章关系数据库 第3章关系数据库标准语言SOL ...第11章并发控制 第12章数据库管理系统 第13章数据库技术发展概述 第14章大数据管理 第15章内存数据库系统 第16章数据仓与联机分析处理技术
第11章高并发之扩容思路 第12章高并发之缓存思路 第13章高并发之消息队列思路 第14章高并发之应用拆分思路 第15章高并发之应用限流思路 第16章高并发之服务降级与服务熔断思路8 第17章高并发之数据库切库分库分表...
数据库系统概论课件,新版,分为基础篇,设计应用开发篇,系统篇,中国人民大学...第十一章 并发控制 * 第十二章 数据库管理系统 第一至第十一章是本科专业的基本教程(书中有*号的部分除外) 第十二至第十七章是高级教程
Java并发编程实战,第1章 简介,第...第10章 避免活跃性危险 第11章 性能与可伸缩性 第12章 并发程序的测试 第13章 显式锁 第14章 构建自定义的同步工具 第15章 原子变量与非阻塞同步机制 第16章 Java内存模型
数据库系统原理 - 课件 第11章-并发控制
数据库系统概论 真题解析 讲义 目 录 第一章 绪论(1) 第二章 关系数据库(20) 第三章 关系数据库标准语言SQL (36) ...第十一章 并发控制(141) 第十二章 现代数据库(155)
与《TCP/IP详解》齐名的一套书。...第11章 并发的、面向连接的服务器(TCP) 第12章 将线程用于并发(TCP) 第13章 单线程、并发服务器(TCP) 第14章 多协议服务器(TCP,UDP) 第15章 多服务服务器(TCP,UDP)