java的多线程和线程池的使用
多线程大大提高程序运行效率,我们在开发过程中经常会开启一个线程来执行一些费时的任务。开启一个线程有4种方式,在下面的文章我将详细的去讲解。继承Thread
继承Thread去执行任务,确实可以开启一个线程去执行任务,如果经常的去开启一些线程,也会导致系统资源的浪费。public static class Mythread extends Thread{ @Override public void run() { System.out.println("当前线程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("运行结果"+i); } } //调用线程。 public static void main(String[] args) throws ExecutionException, InterruptedException { /**thread执行方式*/ Mythread mythread = new Mythread(); mythread.start();//启动线程 System.out.println("main--end"); } 实现Runnale接口。public static class MyRunable implements Runnable { @Override public void run() { System.out.println("当前线程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("运行结果"+i); } }
调用。/** * runable的启动方式 */ MyRunable runable = new MyRunable(); new Thread(runable).start(); System.out.println("main--end");Callable/** * Callable可以允许有返回值 */ public static class Callale01 implements Callable { @Override public Integer call() throws Exception { System.out.println("当前线程"+Thread.currentThread().getId()); int i = 10/2; System.out.println("运行结果"+i); return i; } }
调用。这里需要用callable构建futureTask
/** * callale的启动方式 */ FutureTask futureTask =new FutureTask<>(new Callale01()); //取返回结果。 Integer i = futureTask.get(); new Thread(futureTask).start(); System.out.println("返回结果是:"+i);线程池
线程池才是我们java开发中,经常用到一种开启多线程的方式,线程池,自己去管理线程。可以节省系统资源。通常我们会将下面的一些配置写在一些配置类中/** * 七大参数 * corePoolSize: 1.核心线程数[一直存在]: 线程池创建好了以后。就准备就绪的线程数量。 * maxinumPoolSize: 2 最大线程数量 * keepaliveTime: 存活时间。空闲线程的最大的等待时间。 * unit 等待时间的单位 * blockingQueue 阻塞队列。如果任务很多就会放在队列里面,只要有线程空闲了,就会去队列里面去取。 * threadFactory :线程的工厂。 * RejectExecutionHandler :如果队列满了。按照我们指定的策略。拒绝执行任务。 * */ ThreadPoolExecutor executor = new ThreadPoolExecutor(5,100,10,TimeUnit.SECONDS, new LinkedBlockingQueue<>(100), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());常见的4种线程池。
1 newCachedThreadPool()
创建一个可缓存的线程池,如果线程池长度超过了处理的需要,可灵活的回收空闲线程。若无可回收。则创建新线程。Executors.newCachedThreadPool();
2.newFixedThreadPool(6)
创建一个固定大小的线程池。
3 newScheduledThreadPool()
定时任务的线程池。
4.newSingleThreadExecutor()Executors.newSingleThreadExecutor();
最新中国手机市场份额出炉vivo第一,小米第五,荣耀大杀四方2022年上半年,全球智能手机市场整体出货量大幅萎缩,面对消费者们换机购机热情的下降,各大手机厂商们也基本上开始以稳保基本盘为目标,不再盲目地全力冲击高端市场,无论是产品堆料还是发
亚马逊月销售利润金字塔,你在第几层?新晋亚马逊卖家平均每年赚取近3万美元的利润。在亚马逊上销售需要注意什么,新卖家应该做什么来确保盈利呢?根据海外机构的最新报告显示,49的亚马逊新卖家将做自己的老板作为入驻该平台的首
万亿行数据库已然出现,存储大厂们还顶得住吗?一个新的大规模分析与存储的时代正在我们面前徐徐展现身姿。OcientImplyVASTData及WEKA这四家初创公司,都在以几秒之内存储并访问数百PB也就是数万亿行数据为核心卖点
怎么看待最近苹果充电器,卡针,维修包的行为?最近有很多关于苹果的新闻,而这些新闻实际上确实让很多人大吃一惊。比如说苹果手机它的,充电器的取消,苹果的消息称,节省了55万吨的矿石。又比如说苹果的SIM卡针,价格是26块钱。各类
为什么马斯克收购推特,而不是收购脸书?马斯克在他的推特上解释过这个问题。扎克伯格拥有脸书的绝对控股权并且不会出售手中的股份,所以马斯克即使收购了一些散户也无法掌控脸书,所以只能收购推特。原因有几点推特和脸书的定位不同。
实体店怎么引流?做实体店怎么拓客,这个很重要。特别是刚开张的新店,客户资源多不多,全靠拓客引流。要不然就算店里卖的东西再好,也于事无补。做的行业不同,拓客方式也不同,那我说说我是怎么拓客的。我也是
中年失业,投简历失败,年龄是个坎,压力好大,有同样焦虑的吗?求职应聘的中年人,年龄在40岁到50岁之间,的确年龄是条红线,选择的职位相应比较少。一少部分是国企的高管,私营企业职业经理人,这部分岗位要求行业背景强大。专业知识经验丰富,熟知客户
采购必备资源网址大全(建议收藏)常用阿里巴巴京东企业购企业信用查询卓创资讯物流顺丰EMS京东快递德邦物流中铁快运菜鸟物流DHLUPSFedEx快递100综合中国供应商中国贸易网慧聪网中国产业信息网中国制造网中国政
微信公众平台将显示用户发布内容时的IP属地据微信珊瑚安全公告显示,为维护网络传播秩序,进一步打击仿冒搬运造谣传谣等行为,微信公众平台将显示用户发布内容时的IP属地,境内帐号展示到省(自治区直辖市),境外帐号展示到国家(地区
怎么看待各大网络平台展示用户IP地址?我觉得很好,色播(颜值主播)骗子黑粉水军杜撰炒作,泛滥成灾,让它们现原形没啥不好,心不虚的每个人GPS定位又何妨?对好人来说是件平常事,对坏人来说是件糟心的事公布IP地址,感觉就像
大疆遭乌克兰指控向俄泄露军队数据后,暂停俄乌业务大疆中国制造商大疆(DJI)表示,将暂停在俄罗斯和乌克兰的业务。该公司发表声明指,公司内部正在重新评估各个司法管辖区的遵守法规要求,在审查期间,大疆将暂停在俄罗斯和乌克兰的所有商业活动