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

北京通州网站制作公司网站群建设规范

北京通州网站制作公司,网站群建设规范,做视频网站的条件,手机网站推广法1.实现Runable接口 实现Runable接口#xff0c;实现run方法#xff1b; 这种方式创建的线程实现类执行时需要创建Thread实例去运行该任务 示例如下#xff1a; package com.example.springbootdamo.Thread;import org.apache.logging.log4j.LogManager; import org.apach…1.实现Runable接口 实现Runable接口实现run方法 这种方式创建的线程实现类执行时需要创建Thread实例去运行该任务 示例如下 package com.example.springbootdamo.Thread;import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;public class RunnableTest implements Runnable{static Logger log LogManager.getLogger();Overridepublic void run() {log.info(实现Runable接口的线程任务执行中);} }public static void runable(ThreadPoolExecutor poolExecutor) {//创建线程任务对象RunnableTest runnableTest new RunnableTest();//调用方法的线程执行runnableTest.run();//线程调用Thread thread new Thread(runnableTest);//重开线程执行thread.start();//调用方法的线程执行thread.run();//无返回值的线程池运行任务poolExecutor.execute(runnableTest);//有返回值的线程池运行任务Future? submit poolExecutor.submit(runnableTest); } 运行图如下 1.继承Thread类 继承Thread类重写run方法直接运行run方法 调用start()或者交由线程池执行 package com.example.springbootdamo.Thread;import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;import java.util.concurrent.TimeUnit;/*** ClassName ThreadTest* Description TODO* Author zoro* Date 2024/4/4 22:24*/ public class ThreadTest extends Thread{static Logger log LogManager.getLogger();Overridepublic void run(){log.info(this.getName()继承Thread类的线程任务执行开始);try {//睡五秒this.sleep(5);log.info(this.getName()继承Thread类的线程任务执行了五秒钟);} catch (InterruptedException e) {e.printStackTrace();}log.info(this.getName()继承Thread类的线程任务执行结束);}}运行示例图如下由日志是被那个线程所以打印的可知当前执行线程为何 3.实现Callable接口 实现Callable接口实现call方法利用FutureTask的构造器入参为callable对象的实现类创建实例调用该对象的run方法或者直接用线程池执行该实例FutureTask实现了RunnableFuture接口RunnableFuture实现了Runnable与Future接口。 方法实现 public static void callable(ThreadPoolExecutor poolExecutor) {CallableTest callable new CallableTest();FutureTask futureTask new FutureTask(callable);//运调用方法的线程行futureTask.run();//线程池调用poolExecutor.execute(futureTask);//线程池运行时调用方法的线程等待返回值//方式一FutureResponseBO submit poolExecutor.submit(callable);//方式二poolExecutor.submit(futureTask);try {//方式一ResponseBO responseBO submit.get();log.info(responseBO.getReturnMessage());//方式二ResponseBO responseBO2 (ResponseBO) futureTask.get();log.info(responseBO2.getReturnMessage());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();} 运行结果因为返回值问题所以调用线程会等待线程执行完任务后继续执行。从下方线程池的工作任务队列workers可知三次都是重新创建的线程 4.线程池创建线程 主要是通过线程池工厂创建 public void threadPool(){//默认线程池工厂ThreadPoolExecutor poolExecutor new ThreadPoolExecutor(5, 5, 5000, TimeUnit.SECONDS, new LinkedBlockingDeque());//自定义线程池工厂ThreadPoolExecutor poolExecutor1 new ThreadPoolExecutor(5, 5, 5000, TimeUnit.SECONDS, new LinkedBlockingDeque(),new ThreadFactoryTest()); } 线程池创建的线程需要有执行任务对象该对象一般要实现Runable接口或者Callable接口 执行方法有 submit()和execute()两种方式前者有返回值后者没有返回值 示例如下 package com.example.springbootdamo.Thread;import com.example.springbootdamo.ResponseBO; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;import java.util.concurrent.*;public class ThreadPoolTest {static Logger log LogManager.getLogger();public static void main(String[] args) {//创建线程池ThreadPoolExecutor poolExecutor new ThreadPoolExecutor(5, 5, 5000, TimeUnit.SECONDS, new LinkedBlockingDeque());callable(poolExecutor);runable(poolExecutor);thread(poolExecutor);log.info(日志打印测试);}public static void callable(ThreadPoolExecutor poolExecutor) {CallableTest callable new CallableTest();FutureTask futureTask new FutureTask(callable);//线程池调用poolExecutor.execute(futureTask);//线程池运行时调用方法的线程等待返回值//方式一FutureResponseBO submit poolExecutor.submit(callable);//方式二poolExecutor.submit(futureTask);try {//方式一ResponseBO responseBO submit.get();log.info(responseBO.getReturnMessage());//方式二ResponseBO responseBO2 (ResponseBO) futureTask.get();log.info(responseBO2.getReturnMessage());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}public static void runable(ThreadPoolExecutor poolExecutor) {//创建线程任务对象RunnableTest runnableTest new RunnableTest();//无返回值的线程池运行任务poolExecutor.execute(runnableTest);//有返回值的线程池运行任务Future? submit poolExecutor.submit(runnableTest);}public static void thread(ThreadPoolExecutor poolExecutor) {//创建线程任务对象ThreadTest threadTest new ThreadTest();//线程池运行任务poolExecutor.execute(threadTest);// 执行的是线程的任务poolExecutor.submit(threadTest, new ResponseBO());}}运行结果图如下
http://www.dnsts.com.cn/news/207518.html

相关文章:

  • 任县网站建设网络公司wordpress后台中文
  • 高价词网站源码怎么做购物网站到
  • 企业网站设计说明今晚比赛预测比分
  • 龙华民治网站建设公司ui培训设计怎么样
  • 进口外贸网站有哪些网上书店电子商务网站建设
  • 营销型网站建设系统做网站赚取广告费
  • dede宠物网站模板仿网站被封怎么办
  • 怎样做企业手机网站建设赣州市建设局网站
  • 钟祥网站开发建站模板安装视频教程全集
  • 微信网站开发怎么做怎么优化标题和关键词排名
  • jsq项目做网站2018年深圳建设网站公司
  • 驻马店北京网站建设深圳制作企业网站
  • 网站 美食频道 建设湖南省郴州市旅游景点介绍
  • 注册一个网站多少钱?免费设计素材下载
  • 百度收录快的网站注册公司注册地址
  • 网站开发大学一般设计网站页面用什么软件
  • 新会网站建设销售怎么做
  • 外贸网站建设服务器wordpress 产品类标题
  • 找建筑工作哪个网站好网站从哪里找的
  • 洛阳网站建设兼职网站可做2个首页吗
  • 网站备案核验单怎么填怎么注册公司企业微信
  • 产品如何做网站推广wordpress 海淘主题下载地址
  • 专门做宠物食品的网站网站有备案 为企业
  • 佛山市企业网站seo联系方式做跨境电商有没推荐的网站
  • 长沙装修网站排名房地产销售计划
  • 服装展示网站源码花都网站建设公司
  • 怎样批量做地级市网站餐饮行业做微信网站有什么好处
  • 企业网站代码网站推广公司运营模式
  • 东莞怎样做网站建设一小时学会网站建设
  • 网站建设运营企划案阿里巴巴网站建设教程视频