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

盐城网站建设多少钱wordpress迁移跳转原网站

盐城网站建设多少钱,wordpress迁移跳转原网站,wordpress 投稿插件,各类网站建设文章目录 线程创建方式1——Thread线程创建方式2——Runnable线程创建方式2——匿名内部类线程创建方式3——Callable、FutureTask,带返回值 线程其实是程序中的一条执行路径。 那怎样的程序才是多线程程序呢#xff1f; 例如12306网站就是支持多线程的#xff0c;因为同时可… 文章目录 线程创建方式1——Thread线程创建方式2——Runnable线程创建方式2——匿名内部类线程创建方式3——Callable、FutureTask,带返回值 线程其实是程序中的一条执行路径。 那怎样的程序才是多线程程序呢 例如12306网站就是支持多线程的因为同时可以有很多人一起进入网站购票而且每一个人互不影响。再比如百度网盘可以同时下载或者上传多个文件。这些程序中其实就有多条执行路径每一条执行执行路径就是一条线程所以这样的程序就是多线程程序。下面会逐一介绍三种常见的线程创建方式。 线程创建方式1——Thread Java为开发者提供了一个类叫做Thread此类的对象用来表示线程。创建线程并执行线程的步骤如下 1.定义一个子类继承Thread类并重写run方法 2.创建Thread的子类对象 3.调用start方法启动线程启动线程后会自动执行run方法中的代码 public class MyThread extends Thread{// 2、必须重写Thread类的run方法Overridepublic void run() {// 描述线程的执行任务。for (int i 1; i 5; i) {System.out.println(子线程MyThread输出 i);}} }再定义一个测试类在测试类中创建MyThread线程对象并启动线程 public class ThreadTest1 {// main方法是由一条默认的主线程负责执行。public static void main(String[] args) {// 3、创建MyThread线程类的对象代表一个线程Thread t new MyThread();// 4、启动线程自动执行run方法的t.start(); for (int i 1; i 5; i) {System.out.println(主线程main输出 i);}} }打印结果如下图所示我们会发现MyThread和main线程在相互抢夺CPU的执行权注意哪一个线程先执行哪一个线程后执行目前我们是无法控制的每次输出结果都会不一样 最后我们还需要注意一点不能直接去调用run方法如果直接调用run方法就不认为是一条线程启动了而是把Thread当做一个普通对象此时run方法中的执行的代码会成为主线程的一部分。此时执行结果是这样的。 线程创建方式2——Runnable Java为开发者提供了一个Runnable接口该接口中只有一个run方法意思就是通过Runnable接口的实现类对象专门来表示线程要执行的任务。具体步骤如下 1.先写一个Runnable接口的实现类重写run方法(这里面就是线程要执行的代码) 2.再创建一个Runnable实现类的对象 3.创建一个Thread对象把Runnable实现类的对象传递给Thread 4.调用Thread对象的start()方法启动线程启动后会自动执行Runnable里面的run方法 代码如下先准备一个Runnable接口的实现类 /*** 1、定义一个任务类实现Runnable接口*/ public class MyRunnable implements Runnable{// 2、重写runnable的run方法Overridepublic void run() {// 线程要执行的任务。for (int i 1; i 5; i) {System.out.println(子线程输出 》 i);}} }再写一个测试类在测试类中创建线程对象并执行线程 public class ThreadTest2 {public static void main(String[] args) {// 3、创建任务对象。Runnable target new MyRunnable();// 4、把任务对象交给一个线程对象处理。// public Thread(Runnable target)new Thread(target).start();for (int i 1; i 5; i) {System.out.println(主线程main输出 》 i);}} }运行上面代码结果如下图所示**注意没有出现下面交替执行的效果也是正常的** 线程创建方式2——匿名内部类 这种写法不是新知识只是换一种写法。刚刚我们的第二种线程的创建方式需要写一个Runnable接口的实现类然后再把Runnable实现类的对象传递给Thread对象。 现在如果不想写Runnable实现类于是可以直接创建Runnable接口的匿名内部类对象传递给Thread对象。 代码如下 public class ThreadTest2_2 {public static void main(String[] args) {// 1、直接创建Runnable接口的匿名内部类形式任务对象Runnable target new Runnable() {Overridepublic void run() {for (int i 1; i 5; i) {System.out.println(子线程1输出 i);}}};new Thread(target).start();// 简化形式1new Thread(new Runnable() {Overridepublic void run() {for (int i 1; i 5; i) {System.out.println(子线程2输出 i);}}}).start();// 简化形式2new Thread(() - {for (int i 1; i 5; i) {System.out.println(子线程3输出 i);}}).start();for (int i 1; i 5; i) {System.out.println(主线程main输出 i);}} }线程创建方式3——Callable、FutureTask,带返回值 已经有两种了为什么还有要第三种呢 这样我们先分析一下前面两种都存在的一个问题。然后再引出第三种可以解决这个问题。 假设线程执行完毕之后有一些数据需要返回前面两种方式重写的run方法均没有返回结果。 public void run(){...线程执行的代码... }JDK5提供了Callable接口和FutureTask类来创建线程它最大的优点就是有返回值。 在Callable接口中有一个call方法重写call方法就是线程要执行的代码它是有返回值的 第三种创建线程的方式步骤如下 1.先定义一个Callable接口的实现类重写call方法 2.创建Callable实现类的对象 3.创建FutureTask类的对象将Callable对象传递给FutureTask 4.创建Thread对象将Future对象传递给Thread 5.调用Thread的start()方法启动线程(启动后会自动执行call方法) 等call()方法执行完之后会自动将返回值结果封装到FutrueTask对象中 6.调用FutrueTask对的get()方法获取返回结果 代码如下先准备一个Callable接口的实现类 class MyCallable implements CallableInteger {public int target;public MyCallable(int s){target s;}Overridepublic Integer call() throws Exception {int sum0;for(int i0;itarget;i){sumi;}return sum;} }再定义一个测试类在测试类中创建线程并启动线程还要获取返回结果。 public class test_thread2 {public static void main(String[] args) throws ExecutionException, InterruptedException {CallableIntegercallnew MyCallable(100);FutureTaskIntegerf1new FutureTask(call);new Thread(f1).start();CallableIntegercall1new MyCallable(200);FutureTaskIntegerf2new FutureTask(call1);new Thread(f2).start();int res1 f1.get();System.out.println(res1);int res2f2.get();System.out.println(res2);} }
http://www.zqtcl.cn/news/642198/

相关文章:

  • 新农村建设投诉在哪个网站上海做电缆桥架的公司网站
  • 免费行情100个软件网络优化论文
  • asp.net动态的网站开发个人业务网站带后台
  • 控制网站的大量访问关于实验室建设的英文网站
  • 中国容桂品牌网站建设怎么自己做个网站做链接跳转
  • 安徽省建设工程协会网站昆明官网seo厂家
  • 品牌整合推广搜狗优化好的网站
  • 娄底手机网站制作深圳网站建设怎么做
  • 好的龙岗网站建设附近装修公司电话和地址
  • 网站后台生成文章很慢网络营销毕业设计
  • 如何把资料上传到网站什么叫高端网站定制
  • 郑州企业网站建设团队什么是交换链接
  • 如何建立一个外贸公司网站活动营销的方式有哪些
  • 上海工程造价咨询公司余姚网站seo运营
  • 小加工厂做网站wordpress免费主题破解版
  • 网站打开风险怎么解决企业建设网站网站建设公司
  • 随州网站建设公司wordpress怎样上传主题
  • 做外链等于网站更新么台州椒江网站建设
  • 自己搭建一个博客网站网络营销是什么大类
  • 10元网站备案php企业网站开发实训报告
  • 建筑网站设计大全wordpress模板死循环
  • 网站优化排名软件泌阳网站建设
  • 网站反向绑定域名企业网站的建立网络虚拟社区时对于企业
  • 重庆大渡口网站建设解决方案梓潼 网站建设 有限公司
  • 高端平面网站东营住房和城乡建设厅网站
  • 品牌网站建设e小蝌蚪易时代网站
  • 做搜狗手机网站点击软网站建设有哪些种类
  • 想自学做网站太原要做网站的公司
  • 站内seo优化淘宝网站推广策划方案
  • 福建建设执业注册中心网站网址格式怎么写