学习笔记4

来源:互联网 发布:js random 1 100 编辑:程序博客网 时间:2024/06/05 13:24
堵塞状态:一个正在执行的线程在某些特殊情况下如果被人为挂起或需要执行耗时的输入/输出操作时将让出CPU并暂时中止自己的执行进入堵塞状态在可执行 状态下如果调用sleep()susoend()wait()等方法线程都将进入堵塞状态堵塞时线程不能入排队队列只有当引起堵塞原因被消除后线程才可以进入就绪状态死亡状态:线程调用stop()或run()方法执行结束后即处于死亡状态处于死亡状态的线程不具有继续运行的能力sleep方法需要指定睡眠时间,单位是毫秒。一个特殊的状态:就绪。具备了执行资格,但是还没有获取资源

实现Runnable接口
子类覆盖接口中的run方法。
通过Thread类创建线程,并将实现了
Runnable接口的子类对象作为参数传递给
Thread类的构造函数。
Thread类对象调用start方法开启线程。
isAlive() 判断线程是否处于活动状态
sleep(long millis) 线程休眠
join() 强制执行线程
interrupt() 中断线程的某种状态
setDaemon将线程设置成后台线程

线程通信 等待唤醒机制wait()(释放cpu执行权,释放锁),notify(),随机唤醒任意线程notifyAll(),唤醒多个线程Thread.sleep释放CPU线程线程安全问题 :数据共享 有多个线程同步代码块的任意对象只有锁相同才能同步 可同步函数同步函数的锁是this静态同步函数的锁是当前字节码文件

新特性:lock接口
好处:用一把锁的不同监视器控制敢不同事情的线程
挂起:await()
唤醒:signal() signalAll()
上锁lock.lock()
解锁lock.unlock()
StringBuffer字符转换
s.append(“好人”); 内容追加
当需要修改某个字符串时使用StringBuffer效率更高
reverse()反向

原创粉丝点击