当前位置: 首页 > news >正文

用jsp做网站用什么软件惠州seo外包平台

用jsp做网站用什么软件,惠州seo外包平台,维护网站建设空间出租,淄博学校网站建设哪家好并发和并行 并发: 在同一时刻,多个指令在单一CPU上交替指向 并行:在同一时刻,多个指令在多个CPU上同时执行 2核4线程,4核8线程,8核16线程,16核32线程 基础实现线程的方式 Thread :继承类 &…

并发和并行

并发: 在同一时刻,多个指令在单一CPU上交替指向

并行:在同一时刻,多个指令在多个CPU上同时执行

2核4线程,4核8线程,8核16线程,16核32线程

基础实现线程的方式

  • Thread :继承类 ,无返回
  • Runnable :实现接口,无返回
  • Callable 核 TaskFurture : 实现接口,有返回
public static void main(String[] args) {MyThread t1 = new MyThread();t1.setName("自定义线程-1");MyThread t2 = new MyThread("自定义线程-2");t1.start();t2.start();}static class MyThread extends  Thread{//        int ticket = 100; // 单个线程私有
//        static int ticket = 100; // MyThread类启动的多线程共有public MyThread() {}public MyThread(String name) {super(name);}@Overridepublic void run() {for (int i=1;i<1000;i++){System.out.println(Thread.currentThread().getName()+"   "+i);}}}
public class RunnableMain {public static void main(String[] args) {MyRunnable r1 = new MyRunnable();Thread t1 = new Thread(r1,"自定义线程-1");Thread t2 = new Thread(t1,"自定义线程-2");t1.start();t2.start();}static class MyRunnable implements Runnable{// int ticket = 100; // 线程共享@Overridepublic void run() {for (int i=1;i<1000;i++){System.out.println(Thread.currentThread().getName()+"   "+i);}}}
}
public class CallableMain {public static void main(String[] args) throws ExecutionException, InterruptedException {MyCallable c1 = new MyCallable();FutureTask<Integer> f1 = new FutureTask<>(c1);Thread t1 = new Thread(f1);t1.start();System.out.println(f1.get());}static class MyCallable implements Callable<Integer>{@Overridepublic Integer call() throws Exception {Integer count = 0;for (int i=1;i<1000;i++){count+=i;}return count;}}
}

常见的成员方法

方法名称说明
String getName()返回此线程的名称
void setName()设置线程的名称
static Thread currentThread()获得当前线程对象
static void sleep(long time)让当前线程休眠,单位:毫秒
setPriority(int newPriority)设置线程优先级,1-10,10最大优先级,默认5
final int getPriority()获取线程的优先级
final void setDaemon(boolean on)设置为守护线程,其他非守护线程的线程结果,守护线程也将结束
public static void yield()礼让线程,让线程跑得更均匀
public staic void join()插入线程,插入得线程跑完再继续执行被插入线程

生命周期

同步代码块synchronized (),同步方法,local锁

// lock是接口,用ReentrantLock实现
Lock reentrantLock = new ReentrantLock();
reentrantLock.lock();
reentrantLock.unlock();
注意退出的时候,是否带锁退出,最好放在finally块里

死锁:相互等待

等待/唤醒

锁.wait();
锁.notifyAll(); //唤醒所有这两个方法必须在同步代码块内部调用

交替执行: 

public class MyArrayBlockingQueue {static Integer count = 10;static Integer hasFood = 0;static Object obj = new Object();public static void main(String[] args) {Cooker cooker = new Cooker();Eater eater = new Eater();Thread t1 = new Thread(cooker);Thread t2 = new Thread(eater);t1.start();t2.start();}@Datastaticclass Cooker implements Runnable {private ArrayBlockingQueue abq;@Overridepublic void run() {while (true) {if (count == 0) {break;} else {synchronized (MyArrayBlockingQueue.obj) {if (hasFood == 1) {// 有食物try {MyArrayBlockingQueue.obj.wait();} catch (InterruptedException e) {e.printStackTrace();}} else {hasFood++;System.out.println("做了一份菜");MyArrayBlockingQueue.obj.notifyAll();}}}}}}@Datastaticclass Eater implements Runnable {private ArrayBlockingQueue abq;@Overridepublic void run() {while (true) {if (count == 0) {break;} else {synchronized (MyArrayBlockingQueue.obj) {if (hasFood == 0) {// 没有食物try {MyArrayBlockingQueue.obj.wait();} catch (InterruptedException e) {e.printStackTrace();}} else {hasFood--;count--;System.out.println("吃了一份菜,还剩下" + count + "容量的肚子");MyArrayBlockingQueue.obj.notifyAll();}}}}}}}

阻塞队列

继承:

Iterable -> Collection -> Queue -> BlockingQueue -> ArrayBlockQueue(数组有界) / LinkedBlockQueue(数组无界)

线程池

// 获取一个单线程的线程池:
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();// 获取FixThread 线程池: 指定活跃线程数量2
ExecutorService executorService = Executors.newFixedThreadPool(2);// 创建一个可缓存的线程连接池,无限大(完全取决于操作系统最大允许多少)
// 超过60秒自动回收
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();// 1. 获取周期性线程池, 传入核心线程的大小
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2);

多线程(二) | 彻底搞懂线程池-Executors_executor.submit-CSDN博客

http://www.mmbaike.com/news/60177.html

相关文章:

  • 网站制作常用代码做百度推广怎么做才能有电话
  • 连云港东海县做网站互联网十大企业
  • 前端开发面试题及答案企业网站优化价格
  • 鄂州第一官方网站西安楼市最新房价
  • 福州网站维护搜狗收录批量查询
  • 关于网站开发的网站seo培训优化课程
  • 专门做985招聘信息的网站seo文章范文
  • 网站开发数据库动态管理百度收录批量提交入口
  • 做网站先建立模型seo网络推广技术员招聘
  • 网站素材免费下载成都网站seo诊断
  • 东莞品牌网站设计公司计公司万能的搜索引擎
  • 垫江网站建设费用百度一下你就知道官方网站
  • 做网站现在可以挣钱吗产品代理推广方案
  • 政府网站集约化建设的背景搜索指数的数据来源是什么
  • 做网站使用什么语言写百度 seo 工具
  • 免费网站注册永久杭州seo推广排名稳定
  • 如何做一个免费的网站查询域名网站
  • 辽宁省建设厅网站更新简单制作html静态网页
  • 三元区建设小学网站江苏网页定制
  • 网站开发员招聘如何在百度上发自己的广告?
  • 国贸网站建设聊城网站开发
  • html网站开发心得营销培训课程
  • 做的响应式网站用什么测试西安seo网络优化公司
  • 江苏付费网络推广培训宁波关键词优化排名工具
  • 网站建设公司排名及费用关键词如何确定
  • 无锡设计师网站免费做网站怎么做网站
  • 视频网站 如何做seo网站seo重庆
  • 东莞seo排名收费网站seo快速优化技巧
  • 网站建设费专用发票能不能抵扣中国十大品牌策划公司
  • 做电脑系统的网站好美橙互联建站