如何做有后台的网站,网上运营培训班,wordpress附件图标,来宾seo人开始反向思考 —— 24.5.26 定时器_Timer 1.概述:定时器 2.构造: Timer() 3.方法: void schedule(TimerTask task, Date firstTime, long period) task:抽象类,是Runnable的实现类 firstTime:从什么时间开始执行 period:每隔多长时间执行一次… 人开始反向思考 —— 24.5.26 定时器_Timer 1.概述:定时器 2.构造: Timer() 3.方法: void schedule(TimerTask task, Date firstTime, long period) task:抽象类,是Runnable的实现类 firstTime:从什么时间开始执行 period:每隔多长时间执行一次,设置的是毫秒值 package S82ThreadTimer;import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;public class Demo222Timer {public static void main(String[] args) {Timer timer new Timer();timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(一切都会好的 我一直相信);}},new Date(),2000L);}
}总结 等待唤醒 wait() 线程等待,等待的过程中,释放锁,需要其他线程调用notify去唤醒 notify() 唤醒一个等待的线程,如果有多个线程等待,随机一条唤醒 notifyAll() 唤醒所有等待的线程 Lock锁 1.概述 — 接口 2.使用 a.获取 — ReentrantLock b.方法 lock() 获取锁 unlock() 释放锁 Callable 1.概述 接口,类似于Runnable,是实现多线程的第三种方式 2.方法 -- call() 设置线程任务,类似于run方法 可以throws异常,还有返回值 线程池 1.概述 容器中有多条线程对象,来了线程任务,直接从线程池中获取线程对象,用完还回去 2.获取 static ExecutorService newFixedThreadPool(int nThreads) 3.执行线程任务 Future?submit(Runnable task)提交一个Runnable任务用于执行 FutureT submit(CallableT task) 提交一个Callable任务用于执行 4.返回值 Future接囗 — Vget() 用于获取call方法返回值 5.关闭线程池 void shutdown()启动有序关闭其中先前提交的任务将被执行但不会接受任何新任务