好。我先来个例子public class JavaThreadPool { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ExecutorService pool = Executors.newFixedThreadPool(2); Thread t1 = new MyThread(); Thread t2 = new MyThread(); Thread t3 = new MyThread(); Thread t4 = new MyThread(); Thread t5 = new MyThread();
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub ExecutorService pool = Executors.newFixedThreadPool(2);
Thread t1 = new MyThread();
Thread t2 = new MyThread();
Thread t3 = new MyThread();
Thread t4 = new MyThread();
Thread t5 = new MyThread();
pool.execute(t1);
pool.execute(t2);
pool.execute(t3);
pool.execute(t4);
pool.execute(t5);
pool.shutdown();
}}
class MyThread extends Thread{ @Override
public void run() {
System.out.println(Thread.currentThread().getName() + " 正在执行 ....");
}
}
semaphore ConcurrentHashMap
同步,互斥 ,操作系统学过啊面试经常考的啊 你们都是过来人 啊。来点给力的题目啊
2:HTTP 请求发出之后,若在 2 分钟内未收到 HTTP 请求的响应,那么进入重试状态;当进入重试状态时,会再尝试三次。第一次尝试在失败后约 5 分钟
第二次尝试在第一次尝试失败后约 15 分钟
第三次尝试在第二次尝试失败后约 30 分钟若三次尝试均以失败告终则将数据列入归档中,供今后对账之用。现在,你作为 A 公司这个通知接口的技术设计人员,需要实现一个这样的通知系统,考虑:1:高可用:当有服务器宕机时,会有其他服务器接管,该服务器内存中需要通知的数据不允许丢失
2:高并发:高峰时瞬间会有很多的数据需要通知到 B
3:数据响应的正确性:若收到 B 的响应时能保证数据处理正确
4:尝试次数今后可能会更改;
5:尝试时间间隔今后可能会更改;
6:该通知接口每秒至少能处理 20 个通知;
7:重试需要达到这些技术指标:首次失败率为 30%;第一次尝试失败率在 20%;第二次尝试失败率在 10%,第三次尝试失败率为 5% 时,能保证每次尝试的时间间隔尽可能地接近尝试时间标准。