Java线程简介
来源:互联网 发布:单片机lcd液晶显示 编辑:程序博客网 时间:2024/06/06 01:15
一、线程概念
线程,有时被称为轻量级进程,是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位。
线程状态:
(1)新建。当一个线程对象被声明并创建时,新生的线程对象处于新建状态。
(2)就绪。处于新建状态的线程被启动后,即可拥有相应的内存空间和所属的资源。
(3)运行。处于就绪状态的线程被调度并获得CPU资源时,便处于运行状态。
(4)阻塞。一个正在运行的线程因某些原因让出CPU并暂时中止自己的运行时,就进入阻塞状态。
(5)死亡。当线程不具有继续运行的能力时,将处于死亡状态。
创建线程方式有两种:
1、继承Thread。
格式如下:
[public] class SubThread extends Thread{
.....
public void run(){
//要运行的代码
}
}
2、接口Runnable。
格式如下:
class OneThread implements Runnable{
.........
public void run(){
//要运行的代码
}
}
线程同步
方式:1、同步代码块
所谓同步代码块就是指“{-----}”括起来的一段代码,根据位置和声明的不同,可以分为普通代码块、构造块、静态块3种,如果在代码块加上synchronized关键字,则此代码块就称为同步代码块。格式如下:
synchronized(同步对象){
需要同步的代码;
}
2、同步方法
同步方法和上面类似可以使用synchronized关键字将一个方法声明为听不方法。格式如下:
synchronized 方法返回值 方法名称(参数列表){
//代码
}
注意:在使用同步代码块时必须指定一个需要同步的对象,但是一般都将当前对象(this)设置为同步对象。
在使用线程时可能会发生死锁的问题,代码如下:
class DemoThread implements Runnable{private boolean flag;public DemoThread(boolean flag ) {// TODO Auto-generated constructor stubthis.flag = flag;}public void run(){if(flag){synchronized(MyLock.MyLock1){System.out.println("true MyLock1");synchronized(MyLock.MyLock2){System.out.println("true MyLock2");}}}else{synchronized(MyLock.MyLock2){System.out.println("false MyLock1");synchronized(MyLock.MyLock1){System.out.println("false MyLock2");}}}}}class MyLock{static Object MyLock1 = new Object();static Object MyLock2 = new Object();}public class ThreadDemo {public static void main(String[] args) {// TODO Auto-generated method stubThread thread1 =new Thread(new DemoThread(true));Thread thread2 =new Thread(new DemoThread(false));thread1.start();thread2.start();}}
- JAVA线程简介
- java线程池简介
- java线程池简介
- Java线程技术简介
- java 线程组简介
- java 线程池简介
- Java线程简介
- Java 线程简介
- java 线程简介
- java线程简介
- Java守护线程简介
- Java线程简介
- Java 线程简介
- java线程池简介
- Java 线程简介
- java线程简介(线程的生命)
- Java线程学习之线程简介
- Java线程学习笔记之线程简介
- zookeeper 入门指南
- 网络编程
- 让你的Android应用支持转移到SD卡
- 关于相似图片搜索
- POJ 2184 Cow Exhibition (处理负值的01背包)
- Java线程简介
- 错题(二)
- 防查壳、防杀软误报——手动修改加UPX壳的应用程序
- Reflect
- Android开发笔记——序列化和解析XML文件
- 相似图片搜索的原理(二)
- C++实现顺序表
- 解决 驱动创建设备节点时 权限为 root只读只写 的问题
- Minimum Path Sum