联系方式

咨询热线:400-998-6158

点击此处免费预约试听课程»

常见问题
学习资讯
常见问题

昆明官渡区Java学习班哪里专业

昆明官渡区Java学习班哪里专业

学习目标本课程包括JavaSE,JavaEE,SSHJ框架部分以及学员项目训练等内容,

使学员达到以下目标:
精通JavaSE编程和面向对象的重要概念,有较强的规范代码编写能力。
精通JavaEE知识,熟练使用JavaBean、Jsp、Servlet技术进行MVC框架的Web开发。
精通目前流行的三大框架:Struts、Spring、Hibernate、Ajax等,熟练运用进行Web项目开发。
精通企业流行的数据库0racle10g、MySQL。
掌握EJB和WebService在企业中的运用。

掌握Web实际项目案例开发流程以及企业规范。

我们致力于培养面向互联网领域的高端人才,以学员工作为目的,优质工作为宗旨,是一家集互联网营销师、UI交互设计师、Web前端工程师、Java工程师、PHP工程师、SEO优化师、SEM竞价师、社会化媒体运营师、电商运营师、互联网产品经理、Android工程师、iOS工程师、C/C++工程师、软件测试工程师、Linux云计算工程师、Python工程师、大数据工程师、Unity开发工程师、AR/VR开发工程师、人工智能开发工程师、网络安全工程师、嵌入式开发工程师等课程为一体的IT培训机构。




生产者消费者模型的作用是什么?

(1)通过平衡生产者的生产能力和消费者的消费能力来提升整个系统的运行效率,这是生产者消费者模型较重要的作用 (2)解耦,这是生产者消费者模型附带的作用,解耦意味着生产者和消费者之间的联系少,联系越少越可以独自发展而不需要收到相互的制约

写一个生产者-消费者队列

可以通过阻塞队列实现,也可以通过wait-notify来实现.

使用阻塞队列来实现

//消费者public class Producer implements Runnable{ private final BlockingQueue queue; public Producer(BlockingQueue q){ this.queue=q; } @Override public void run() { try { while (true){ Thread.sleep(1000);//模拟耗时 queue.put(produce()); } }catch (InterruptedException e){ } } private int produce() { int n=new Random().nextInt(10000); System.out.println("Thread:" + Thread.currentThread().getId() + " produce:" + n); return n; }}//消费者public class Consumer implements Runnable { private final BlockingQueue queue; public Consumer(BlockingQueue q){ this.queue=q; } @Override public void run() { while (true){ try { Thread.sleep(2000);//模拟耗时 consume(queue.take()); }catch (InterruptedException e){ } } } private void consume(Integer n) { System.out.println("Thread:" + Thread.currentThread().getId() + " consume:" + ); }}//测试public class Main { public static void main(String[] args) { BlockingQueue queue=new ArrayBlockingQueue(100); Producer p=new Producer(queue); Consumer c1=new Consumer(queue); Consumer c2=new Consumer(queue); new Thread(p).start(); new Thread(c1).start(); new Thread(c2).start(); }}

使用wait-notify来实现

该种方式应该较经典,这里就不做说明了

学校联系方式

更多培训课程,学习资讯,课程优惠等学校信息,请进入 昆明官渡区IT培训昆明官渡区php培训昆明官渡区java培训 网站详细了解,免费咨询电话:400-998-6158

相关课程