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

苏州市网站建设_网站建设公司_跨域_seo优化

企业网站例子,分类信息网站建设专职,京东网站建设流程,营销网页1.继承Thread类#xff1a;创建一个类#xff0c;继承自 Thread 类#xff0c;并重写 run() 方法来定义线程的执行逻辑。然后可以实例化这个类并调用 start() 方法来启动线程。 public class MyThread extends Thread {Overridepublic void run() {// 线程执行逻辑for (int…1.继承Thread类创建一个类继承自 Thread 类并重写 run() 方法来定义线程的执行逻辑。然后可以实例化这个类并调用 start() 方法来启动线程。 public class MyThread extends Thread {Overridepublic void run() {// 线程执行逻辑for (int i 0; i 5; i) {System.out.println(当前线程: Thread.currentThread().getName() i i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {MyThread thread new MyThread();thread.start();} } 在这个例子中MyThread 类继承了 Thread 类并重写了 run() 方法来定义线程的执行逻辑这里简单地打印输出一些信息并暂停 1 秒。在 main 方法中我们实例化了 MyThread 类并调用 start() 方法来启动线程。 继承 Thread 类的方式相对简单直接但也存在一些局限性因为 Java 不支持多重继承所以继承了 Thread 类之后就无法再继承其他类。另外如果想要共享实例变量也不太方便。 总结起来继承 Thread 类是一种简单直接的创建线程的方式适合一些简单的线程逻辑但在复杂的场景中可能需要考虑其他方式。 2.实现Runnable接口创建一个类实现 Runnable 接口并实现 run() 方法来定义线程的执行逻辑。然后可以将这个类的实例传递给 Thread 类的构造函数来创建线程。 public class MyRunnable implements Runnable {Overridepublic void run() {// 线程执行逻辑for (int i 0; i 5; i) {System.out.println(当前线程: Thread.currentThread().getName() i i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}} }public class Main {public static void main(String[] args) {MyRunnable myRunnable new MyRunnable();Thread thread new Thread(myRunnable);thread.start();} } 在这个例子中MyRunnable 类实现了 Runnable 接口并重写了 run() 方法来定义线程的执行逻辑这里简单地打印输出一些信息并暂停 1 秒。在 main 方法中我们创建了 MyRunnable 的实例并将其传递给 Thread 的构造函数来创建线程。最后调用 thread.start() 来启动线程。 需要注意的是run() 方法不会返回任何结果没有返回值。如果需要获取线程的执行结果可以使用 Callable 接口来代替。 总结起来实现 Runnable 接口是一种比较常见的创建线程的方式它不仅简单易用而且可以方便地共享实例变量。 3.实现Callable接口它可以让线程执行完后返回一个结果或者抛出一个异常。与 Runnable 接口不同的是Callable 接口中的 call() 方法可以声明抛出异常并且可以有返回值。 import java.util.concurrent.Callable;public class MyCallable implements CallableInteger {Overridepublic Integer call() throws Exception {int sum 0;for (int i 1; i 100; i) {sum i;}return sum;} }public class Main {public static void main(String[] args) throws Exception {CallableInteger myCallable new MyCallable();FutureTaskInteger futureTask new FutureTask(myCallable);Thread thread new Thread(futureTask);thread.start();System.out.println(计算结果 futureTask.get());} } 在这个例子中MyCallable 类实现了 Callable 接口并实现了 call() 方法来定义线程的执行逻辑这里是计算 1-100 的和并返回。在 main 方法中我们将 MyCallable 实例传递给 FutureTask 的构造函数再将 FutureTask 实例传递给 Thread 的构造函数来创建线程并启动执行。最后调用 futureTask.get() 方法来获取线程的返回结果。 需要注意的是call() 方法可以声明抛出异常并且可以有返回值。同时在本例中我们使用了 FutureTask 来获取线程执行结果它是一个包装器可以将 Callable 转换成 Future。 总之实现 Callable 接口可以让我们更方便地同时获取线程的返回结果和异常信息提高了代码的可靠性和可读性。 4.使用线程池的方式创建线程使用线程池可以更好地管理和复用线程资源从而提高程序的性能和效率。Java 提供了 Executor 框架来创建和管理线程池。 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class Main {public static void main(String[] args) {// 创建线程池指定线程数为 5ExecutorService executor Executors.newFixedThreadPool(5);// 提交任务给线程池for (int i 0; i 10; i) {Runnable worker new WorkerThread(任务 (i 1));executor.execute(worker);}// 关闭线程池executor.shutdown();} }class WorkerThread implements Runnable {private String taskName;public WorkerThread(String taskName) {this.taskName taskName;}Overridepublic void run() {System.out.println(Thread.currentThread().getName() 开始执行任务 taskName);try {// 模拟任务执行时间Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() 完成任务 taskName);} } 在这个例子中我们通过 Executors.newFixedThreadPool(5) 创建了一个固定大小为 5 的线程池。然后我们提交了 10 个任务给线程池每个任务都是一个实现了 Runnable 接口的 WorkerThread 类。每个任务会被线程池中的一个线程执行。 最后我们调用 executor.shutdown() 关闭线程池。这会等待所有已提交的任务执行完毕并且不再接受新的任务。 使用线程池可以有效地管理线程的创建和销毁避免了频繁创建和销毁线程的开销。此外线程池还提供了一些额外的功能例如线程调度、线程超时等能更好地控制线程的执行。 总结起来使用线程池能够更好地管理和复用线程资源提高程序的性能和效率。
http://www.ihoyoo.com/news/109546.html

相关文章:

  • 现在清算组备案在哪个网站做杭州网站建设
  • 深圳住建厅官方网站重庆企业服务建站网站开发
  • 第一次做网站时是怎样的心情长沙seo 优化选智投未来no1
  • 游学旅行网站建设策划书网站建设中的板块名称
  • 关于网站建设与维护的心得体会嘉兴网站建设模板网站
  • 车辆优化管理专业网站wordpress整合uc
  • 长春网站设计长春网络推广云梦网如何做网站
  • 成都网站建设潮州公司的网 网站打不开
  • 惠州微网站建设视频直播网站app开发
  • 广州网站制作设计公司南宁学网站建设
  • 网站建设加推广北京清控人居建设集团网站
  • 如何提高网站访问量wordpress集成微博登陆
  • 山东网站建设排行榜线上课程制作
  • 高端的培训行业网站开发深圳宝安建设工程交易中心
  • 做网站能不能赚钱wordpress修改侧边栏
  • 网站的开发包括什么东西wordpress默认摘要
  • 网站开发树形图济南seo优化
  • 出售源码的网站wordpress 插件 升级
  • 免费app下载网站seo培训班
  • 安徽网站开发培训价格哪些网站是单页面
  • 海南做网站找谁本地网站搭建如何访问网页
  • 公司网站开发部署网站建设服务商的网站建设流程
  • 盐山县做网站价格济南网站建设推广服务
  • 机电网站模板企业建设项目备案办法
  • 网站做百度推广去掉自动升级wordpress失败提示
  • 企业建设网站公司简介网站怎么做登录
  • 营销型网站5要素app购物商城
  • 花里胡哨的网站手机制作海报的软件免费
  • 网站营销成功的案例分析乐之网站制作
  • 深圳企业做网站公咨询公司招聘