java之线程

1.概念
1.线程是一个程序内部的顺序控制流

2.线程和进程区别
1.每个进程都有独立的代码和数据空间(进程上下文),进程间的切换有较大开销
2.线程可以看做轻量级进程(只占用所属进程的少量资源),同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,线程切换开销小
3.多进程:在操作系统中同时运行几个任务(程序)
4.多线程:在同一应用程序中有多个顺序流同时执行

3.通过java.lang.Thread类或Runnable接口实现
4.VM启动会有一个由主方法(public static void main())所定义的主线程。
5.通过创建Thread的实例来创建新的线程
6.每个线程通过某个特定的Thread对象所对应的run()方法来完成其操作,run()称作线程体
7.通过调用Thread的start()来启动线程

 

2.两种创建新线程的方法(尽量使用第一种)
第一种:
1.定义线程类实现Runnable接口
2.Thread myThread = new Thread(Object实现了Runnable的类对象)
3.Runnable只有一个方法public void run()/用于定义线程运行体
4.使用Runnable可以为多个线程提供共享数据
5.在实现Runnable接口的类的run方法中可以使用Thread的静态方法
6:public static Thread currentThread()获取当前线程的引用
第二种:
1.定义一个Thread(实现了Runnable接口)的子类并重写其run()方法
2.MyThread m = new MyThread();m.start();

 

 


3.构造方法
new Thread()/
new Thread(String name)/给线程起一个名字
new Thread(Runnable target(String name))/给实现Runnable接口的类对象开个线程,后面的参数给线程起一个名字


4.常用方法
boolean isAlive()/线程是否还活着(就绪/运行/阻塞)
int getPriority()/获得该线程优先级
void setPriority()/设置线程优先级数
getName()/获得线程名字
getState()/获得线程状态
Thread.sleep(long millis)/将当前进程睡眠指定毫秒数throws InterruptedException
join()/合并某个线程,等该进程(调用join的进程)进行完,才进行合并的进程throws InterruptedException
yield()/让出cpu,当前线程进入就绪队列等待调度
wait()/当前线程进入对象的wait pool
notify()/唤醒对象wait pool中的一个线程
notifyAll()/唤醒对象wait pool中的所有线程
stop()/杀死线程(尽量不使用,有隐患)
interrupt()/中断线程(尽量不使用)

 

6.线程优先级(1-10默认值为5)
三个静态成员变量
static int MAX_PRIORITY/最大线程优先级
static int MIN_PRIORITY/最小线程优先级
static int NORM_PRIORITY/线程目前的优先级

相应方法
int getPriority()/
void setPriority(int newPriority)/

 


7.线程同步问题(使用synchronized关键字)
1.synchronized(this){}锁定当前对象的代码段(其他线程无法访问该代码段,其他的还可以访问)
2.public synchronized void add()/执行当前方法的过程中,当前对象(的该方法)被锁定,其他方法可以被访问
3.当前对象被锁定,其他该对象(加锁方法)无法被调用,没加锁方法可调用
4.当(对象)线程执行一个方法(或代码段)被锁定,该对象另外一个线程无法访问该方法(代码段)
5.当(对象)线程执行一个方法锁定,但另一个对象的线程还可以访问该方法


8:死锁问题

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值