二手交易网网站建设目标,网站页面设计工作流程,网络营销策划有哪些,做网站 视频1 构造器
public Thread() :分配一个新的线程对象。public Thread(String name) :分配一个指定名字的新的线程对象。public Thread(Runnable target) :指定创建线程的目标对象#xff0c;它实现了Runnable接口中的run方法public Thread(Runnable target,String name) :分配一…1 构造器
public Thread() :分配一个新的线程对象。public Thread(String name) :分配一个指定名字的新的线程对象。public Thread(Runnable target) :指定创建线程的目标对象它实现了Runnable接口中的run方法public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。
2 常用方法系列1
public void run() :此线程要执行的任务在此处定义代码。public void start() :导致此线程开始执行; Java虚拟机调用此线程的run方法。public String getName() :获取当前线程名称。public void setName(String name)设置该线程名称。public static Thread currentThread() :返回对当前正在执行的线程对象的引用。在Thread子类中就是this通常用于主线程和Runnable实现类public static void sleep(long millis) :使当前正在执行的线程以指定的毫秒数暂停暂时停止执行。public static void yield()yield只是让当前线程暂停一下让系统的线程调度器重新调度一次希望优先级与当前线程相同或更高的其他线程能够获得执行机会但是这个不能保证完全有可能的情况是当某个线程调用了yield方法暂停之后线程调度器又将其调度出来重新执行。
3 常用方法系列2 public final boolean isAlive()测试线程是否处于活动状态。如果线程已经启动且尚未终止则为活动状态。 void join() 等待该线程终止。 void join(long millis) 等待该线程终止的时间最长为 millis 毫秒。如果millis时间到将不再等待。 void join(long millis, int nanos) 等待该线程终止的时间最长为 millis 毫秒 nanos 纳秒。 public final void stop()已过时不建议使用。强行结束一个线程的执行直接进入死亡状态。run()即刻停止可能会导致一些清理性的工作得不到完成如文件数据库等的关闭。同时会立即释放该线程所持有的所有的锁导致数据得不到同步的处理出现数据不一致的问题。 void suspend() / void resume() : 这两个操作就好比播放器的暂停和恢复。二者必须成对出现否则非常容易发生死锁。suspend()调用会导致线程暂停但不会释放任何锁资源导致其它线程都无法访问被它占用的锁直到调用resume()。已过时不建议使用。
4 常用方法系列3
每个线程都有一定的优先级同优先级线程组成先进先出队列先到先服务使用分时调度策略。优先级高的线程采用抢占式策略获得较多的执行机会。每个线程默认的优先级都与创建它的父线程具有相同的优先级。
Thread类的三个优先级常量 MAX_PRIORITY10最高优先级MIN _PRIORITY 1最低优先级NORM_PRIORITY 5普通优先级默认情况下main线程具有普通优先级。
public final int getPriority() 返回线程优先级public final void setPriority(int newPriority) 改变线程的优先级范围在[1,10]之间。
练习获取main线程对象的名称和优先级。
声明一个匿名内部类继承Thread类重写run方法在run方法中获取线程名称和优先级。设置该线程优先级为最高优先级并启动该线程。 public static void main(String[] args) {Thread t new Thread(){public void run(){System.out.println(getName() 的优先级 getPriority());}};t.setPriority(Thread.MAX_PRIORITY);//设置线程优先级为最高t.start();System.out.println(Thread.currentThread().getName() 的优先级 Thread.currentThread().getPriority());}案例 声明一个匿名内部类继承Thread类重写run方法实现打印[1,100]之间的偶数要求每隔1秒打印1个偶数。 声明一个匿名内部类继承Thread类重写run方法实现打印[1,100]之间的奇数 当打印到5时让奇数线程暂停一下再继续。当打印到5时让奇数线程停下来让偶数线程执行完再打印。 public class TestThreadStateChange {public static void main(String[] args) {Thread te new Thread() {Overridepublic void run() {for (int i 2; i 100; i 2) {System.out.println(偶数线程 i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}};te.start();Thread to new Thread() {Overridepublic void run() {for (int i 1; i 100; i 2) {System.out.println(奇数线程 i);if (i 5) {
// Thread.yield(); // 就是停止现在的线程去先做优先级高的线程try {te.join();// 停止现在的线程运行} catch (InterruptedException e) {e.printStackTrace();}}}}};to.start();}
}