再敲线程 随笔

创建线程的两种方法
继承 Thread 和 实现  Runnable 接口


继承Thread以后只需实例化再start();就能启动线程


实现Runnable接口以后需要  Thread t=new Thread(MyThread); t.start();来启动


start(); 与 run();方法
 mythread.run()是在“主线程main”中调用的,该run()方法直接运行在“主线程main”上。
 mythread.start()会启动“线程mythread”,“线程mythread”启动之后,会调用run()方法;此时的run()方法是运行在“线程mythread”上。
 
 线程控制
 
 1.线程睡眠:Thread.sleep(...);
 2.线程让步:暂停当前线程,让系统的线程调度器重新调度。public static void yield();直接在run方法中调用     yield();
 3.线程协作:使得当前线程进入等待状态,知道被jion方法加入的线程运行结束后,再恢复执行 public final void jion() throws InterruptedException
 4.后台线程:setDaemon(); 可用来打开或者关闭一个线程的守护状态   t.setDaemon(true);当主线程终止时,后台线程也随之终止,非后台线程不会随主线程终止。
 5.线程优先级:优先级高的线程获得较多的运行机会  设置线程优先级:public final void setPriority(int newPrioity)   获得线程优先级: public final int getPriority()
 
 线程同步处理:
 
 public synchronized void accessVal(int newValue);
 声明为synchronized的代码块,同一时间只能有一个线程访问
 
 线程间通信:
 final void wait() throws InterruptedException 
 final void notify();
 final void notifyAll();
 这三个方法只能在synchronized代码块中使用,并且是在同一个同步问题中搭配使用这三个方法才有实际意义
 调用wait()方法可以使调用该方法的线程释放资源的锁,从可运行状态进入等待状态,直到再次被唤醒。
 调用notify()方法可以唤醒等待队列中第一个等待同意共享资源的线程,并使该线程退出等待序列,进入可运行状态。
 调用notifyAll()********************所有    *********************************************************
 notify能唤醒哪一个线程并不确定。
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值