线程
云梦楼兰
爱编程,爱挑战,程序员就是我,我就是程序员
展开
-
sleep()和wait()有什么区别?
sleep是线程类(Thread)的方法,使正在执行的线程暂停执行指定时间,让其他线程先执行,但保持监控状态,到时自动恢复。调用sleep不会释放对象锁。wait是Object的类的方法,对象调用wait方法导致线程放弃对象锁,进入等待次对象的等待锁定池,只有此对象调用notify方法(或notifyAll方法)后本县城才进入对象锁定池准备获得对象锁进入运行状态。原创 2016-11-21 14:08:16 · 440 阅读 · 0 评论 -
启动一个线程使用run()还是start()?
启动一个线程是调用的start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。调用start()方法不意味着线程会立即执行。run()方法可以产生必须退出的标志来停止一个线程。原创 2016-11-21 14:21:40 · 1969 阅读 · 0 评论 -
同步和异步有何不同,在什么情况下分别使用他们?
如果数据静载线程间共享,使用同步。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。同步示例:将需要同步执行的代码加入到同步方法或同步块中(使用synchronized关键字修饰);B-S模式中,使用Form表单提交数据,发送的就是同步请求,当响应返回后,才可以继续操作。当程序在对象上调用了一个原创 2016-11-21 14:34:13 · 7983 阅读 · 0 评论 -
操作线程的方法有哪些?
wait():使一个线程处于等待状态,并且释放所持有的对象锁。sleep():使一个正在运行的线程处于休眠状态,是一个静态方法,调用此方法需要捕捉InterruptedException异常。join():当前运行的线程将转到阻塞状态,直到另一个线程运行结束,它才恢复运行。yield():暂停当前正在执行的线程对象,并执行其他线程。notify():唤醒一个处于等待状态的线程,由JVM决定唤醒哪个原创 2016-11-21 14:37:22 · 1454 阅读 · 0 评论