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

晋城企业网站建设价格建设工程敎育网网站

晋城企业网站建设价格,建设工程敎育网网站,专业h5网站制作,大连网站开发公司排名一、线程前言 首先我们知道#xff0c;线程的概念如果不知道可以去看这一篇Java中的线程#xff0c;我们这篇主要讲述的是Java怎么使用线程池创建线程#xff0c;首先我们要对线程池有点概念#xff0c;其实顾名思义#xff0c;线程池就是有喝多线程的一个池子类似于… 一、线程前言 首先我们知道线程的概念如果不知道可以去看这一篇Java中的线程我们这篇主要讲述的是Java怎么使用线程池创建线程首先我们要对线程池有点概念其实顾名思义线程池就是有喝多线程的一个池子类似于大家搞数据库连接的时候的数据库连接池druid什么池那就是存的什么东西了。 二、普通线程使用 我们回忆一下最基本的线程创建是不是继承Thread或者是实现Runnable接口 我们基本上都选用的是实现Runnable接口因为Java是单继承指不定我们又要继承其他什么东西呢。 Thread类 public class Main {public static void main(String[] args) {MyThread thread new MyThread();thread.start(); } }class MyThread extends Thread {Overridepublic void run() {System.out.println(MyThread is running.);} } 我们通过重写run方法进行线程运行的内容的编写。 Runnable接口 都已经学习线程池了所以大家肯定都是会lambda表达式的吧我们直接写lambda表达式。 public class Main {public static void main(String[] args) {Thread thread new Thread(()- System.out.println(The lambda Runnable interface implements));thread.start();} } 这就是最基本的线程创建以及启动相信大家都很熟悉了。接下来我们来看看高级一点的线程池的使用。 三、使用线程池 Executors类 这个类在JUC里面juc也就是java.util.concurrent。是Java处理多线程的一个工具类假如你以后想要有更高的上升渠道你是必须要学的。废话不多说我们上代码。 package thread;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class Main {public static void main(String[] args) {// 创建线程池对象我们这里设置了2个为上限所以线程池内的线程的上限就是2ExecutorService pool Executors.newFixedThreadPool(2);// 给线程池对象分配任务每一个任务是一个线程pool.execute(() - System.out.println(Thread.currentThread().getName() 1));pool.execute(() - System.out.println(Thread.currentThread().getName() 2));pool.execute(() - System.out.println(Thread.currentThread().getName() 3));pool.shutdown();} }如果你用的IDEA的版本比较新你可能会看到他提示你。 没有关系我们使用一下try-with-resources的方式来运行一下这次我们把上限继续调成3个。 package thread;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class Main {public static void main(String[] args) {// 创建线程池对象我们这里设置了3个为上限try (ExecutorService pool Executors.newFixedThreadPool(3)) {// 给线程池对象分配任务每一个任务是一个线程pool.execute(() - System.out.println(Thread.currentThread().getName() 1));pool.execute(() - System.out.println(Thread.currentThread().getName() 2));pool.execute(() - System.out.println(Thread.currentThread().getName() 3));// 因为使用了try-with-resources的方式所以我们不需要手动关闭我们的线程池了他会自动关闭的。就和IO流一样 // pool.shutdown();} catch (Exception e) {throw new RuntimeException(e);}} }然后我们也能看到我们的线程也是出现了3的字眼。 但是我们留意一下阿里的开发手册我们会发现。 所以我们要使用接下来的一个线程池的方式去创建线程。 ThreadPoolExecutor 但是我们用ThreadPoolExecutor去创建线程池的话因为是自定义线程池所以可选的东西很多所以得仔细看了我们直接选用最少参数的构造器。 package thread;import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit;public class Main {public static void main(String[] args) {/*第一个参数是核心池大小也就是用几个核心去处理第二个参数是最大线程数量第三个参数则是存活时间第四个参数则是第三个参数的单位是什么第五个参数则是存放线程的队列是什么我这里选择的事LinkedBlockingQueue*/try (ThreadPoolExecutor pool new ThreadPoolExecutor(4,8,60,TimeUnit.SECONDS,new LinkedBlockingQueue())) {for (int i 0; i 10; i) {pool.execute(() - System.out.println(Thread.currentThread().getName()));}} catch (Exception e) {throw new RuntimeException(e);}} }pool-1-thread-1 pool-1-thread-3 pool-1-thread-3 pool-1-thread-3 pool-1-thread-3 pool-1-thread-2 pool-1-thread-2 pool-1-thread-1 pool-1-thread-4 pool-1-thread-3 进程已结束退出代码为 0 这就是线程池的两个基本用法我们明显可以从打印信息看出来他的名字是pool开始。 如果对你有帮助你能学习到东西请帮我点个赞点个收藏。
http://www.w-s-a.com/news/6925/

相关文章:

  • 齐河网站建设公司价格网站建设包括什么
  • 论坛网站开发费用怎么把文件放到网站的根目录
  • 海南省零售户电商网站官渡区住房和城乡建设局网站
  • 怎么找淘宝客网站最新军事战况
  • 缺乏门户网站建设网页设计与制作项目教程第二版
  • 手机网站横竖屏一般做建设的是什么公司
  • 免费网站建设无广告网站开发 华景新城
  • 湖州网站制作报价西安网站开发有哪些公司
  • google 浏览器开源seo软件
  • 网站空间是什么意思自己怎样建设网站
  • 国外家装设计网站如何做软件开发
  • 凡科建站登录官网当当网网站建设策划书
  • 网站百度屏蔽关键词杭州排名优化公司
  • h5响应式网站模板下载wordpress鼠标指针
  • 摄影作品投稿网站目前最好的引流推广方法
  • 资源站源码永久dede网站搬家 空间转移的方法
  • 网站建设销售的技巧话语it培训机构
  • 自建本地网站服务器wordpress南充房产网最新楼盘最近房价
  • 郑州代做网站天津哪里能做网站
  • 网站如何做排名网站建设项目的工作分解
  • 洛阳网络建站公司网站开发主流语言
  • 广州各区正在进一步优化以下措施seo值是什么意思
  • 滨州建网站公司京东云 wordpress
  • 网站视频背景怎么做免费的网络推广有哪些
  • 申请网站怎样申请广西壮族自治区专升本业务系统
  • 写作网站哪个网站做ic外单好
  • 苏州和城乡建设局网站撸撸撸做最好的导航网站
  • 网站被同行抄袭怎么办深圳中装建设集团
  • 建站及推广瓦房店 网站建设
  • 怎么查网站是在哪里备案的广州电力建设有限公司网站