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

免费网站建设联系电话关于网站规划建设方案书

免费网站建设联系电话,关于网站规划建设方案书,百度文库登录入口,东莞网站建设581.什么是JUC java.util工具包、包、分类 业务:普通业务线程代码 Thread Runable: 没有返回值、效率相比Callable相对较低。 2.线程和进程 进程:一个程序,QQ.exe Music.exe 程序的集合 一个进程往往可以包含多个线程,至少包含一个…

1.什么是JUC

java.util工具包、包、分类
业务:普通业务线程代码 Thread
Runable: 没有返回值、效率相比Callable相对较低。

2.线程和进程

进程:一个程序,QQ.exe Music.exe 程序的集合

一个进程往往可以包含多个线程,至少包含一个!

java默认有几个线程?2个 main GC

线程:开了一个进程Typora,写字,自动保 存(线程负责)

对于java而言:Thread、Runable、Callable

**java可以开启线程吗?**不可以(本地方法,底层C++,java无法操作硬件)

并发、并行

并发(多线程操作同一个资源)

并行(多个人一起走)

  • CPU多核,多线程可以同时执行;线程池

并发编程的本质:充分利用CPU资源

3.Synchronized和Lock

Synchronized和Lock的区别

  • Synchronized内置的Java关键字,Lock是一个Java类
  • Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁
  • Synchronized会自动释放锁,Lock必须手动释放锁!如果不释放锁就会–死锁
  • Synchronized线程1(获得锁、阻塞)、线程2(等待,傻傻的等),Lock锁就不一定等待下去。
  • Synchronized可重入锁,不可以中断的,非公平;Lock,可重入锁,可以判断锁,非公平(可以自己设置)。
  • Synchronized适合锁少量的代码同步问题,Lock适合锁大量的同步代码。

4.生产者和消费者

传统的生产者和消费者的问题、防止虚假唤醒

线程也可以唤醒,而不会被通知、中断或超时,即所谓虚假唤醒

if语句只能判断一次,在等待的时候如果另一个线程修改了数据,那么wait后就不会进行if判断了

public class A {public static void main(String[] args) {Data data = new Data();new Thread(()->{for (int i = 0; i < 5; i++) {try {data.increment();} catch (InterruptedException e) {e.printStackTrace();}}},"A").start();new Thread(()->{for (int i = 0; i < 5; i++) {try {data.decrement();} catch (InterruptedException e) {e.printStackTrace();}}},"B").start();new Thread(()->{for (int i = 0; i < 5; i++) {try {data.increment();} catch (InterruptedException e) {e.printStackTrace();}}},"C").start();new Thread(()->{for (int i = 0; i < 5; i++) {try {data.decrement();} catch (InterruptedException e) {e.printStackTrace();}}},"D").start();}
}
class Data{private int number=0;public synchronized void increment() throws InterruptedException {//这里使用while循环,如果使用if判断会出现虚假幻想的现象while (number!=0){this.wait();}number++;System.out.println(Thread.currentThread().getName()+"=>"+number);this.notifyAll();}public synchronized void decrement() throws InterruptedException {//同理while (number==0){this.wait();}number--;System.out.println(Thread.currentThread().getName()+"=>"+number);this.notifyAll();}
}

Lock锁实现生产者消费者的问题,Condition实现精准通知唤醒

import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;public class C {public static void main(String[] args) {Data3 data = new Data3();new Thread(()->{for (int i = 0; i < 5; i++) {data.printA();}},"A").start();new Thread(()->{for (int i = 0; i < 5; i++) {data.printB();}},"B").start();new Thread(()->{for (int i = 0; i < 5; i++) {data.printC();}},"C").start();}
}
class Data3{private int number=1;Lock lock=new ReentrantLock();Condition condition1=lock.newCondition();Condition condition2=lock.newCondition();Condition condition3=lock.newCondition();public  void printA(){lock.lock();try {while (number!=1){//等待condition1.await();}System.out.println(Thread.currentThread().getName()+"=>"+number);number=2;//唤醒所有线程condition2.signal();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}public  void printB(){lock.lock();try {while (number!=2){//等待condition2.await();}System.out.println(Thread.currentThread().getName()+"=>"+number);number=3;//唤醒所有线程condition3.signal();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}public  void printC(){lock.lock();try {while (number!=3){//等待condition3.await();}System.out.println(Thread.currentThread().getName()+"=>"+number);number=1;//唤醒所有线程condition1.signal();} catch (Exception e) {e.printStackTrace();} finally {lock.unlock();}}
}
http://www.yayakq.cn/news/350320/

相关文章:

  • wordpress图片广告插件哈尔滨seo优化
  • 深圳市建设安监站网站百度推广 手机网站
  • 什么是软件开发平台优化关键词排名哪家好
  • 建设电子商务网站深圳福田最新消息今天
  • 百度博客网站模板下载index 石家庄网站建设
  • wps网站超链接怎么做莆田建设网站建站
  • 做网站推广的公司发展前景无线网络优化
  • 网站开发 动易要学做游戏上什么网站学好
  • 如何做网站卖画浙江华企做的网站效果如何
  • 西安网站群建设北京建站设计
  • 响应式网站工具互联网c2c交易类网站详细策划书
  • 做微信网站青岛微网站开发
  • 洪山网站建设公司网销是什么意思
  • 硬笔书法网站是谁做的公司网站建设推荐
  • 七星网络网站网站建设 深圳
  • 网站开发有哪些公司网络推广优化工具有哪些
  • 国内h5网站欣赏傻瓜式建站软件下载
  • 如何做垂直门户网站.电子商务网站规划
  • 网站简历wordpress导入链接生成文章
  • 做网站放什么乐陵天气预报
  • 网站格式图片网站开发技术有什么
  • 数字营销平台windows优化大师使用方法
  • 企业网站建设 cms广州设计网页
  • 东莞拓步网站建设公司有必要建设网站吗
  • 网站开发任务网站建设专有名词
  • 网站关于我们怎么做单页面贵州城乡住房建设厅网站
  • 建站模板大全网站备案要邮寄资料吗
  • 烟台网站制作人才招聘免费网站制作范例
  • 夏天做哪个网站能致富贵州省住房和城乡建设厅网
  • 2_网站建设的一般步骤包含哪些?flash静态网站