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

网站备案 主体黑名单网站ftp账号密码

网站备案 主体黑名单,网站ftp账号密码,做vi网站,空间设计公司网站文章目录 线程创建方式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.pierceye.com/news/321708/

相关文章:

  • 百姓网网站建设如何在社交网站做销售
  • 网站微信认证费用介绍网络营销的短文
  • 北京微网站修改wordpress后台登陆
  • 网站建设管理工作情况报告企业在线
  • ps临摹网站营销型网站传统网站
  • 对电子商务网站建设和管理的理解学网站开发应该学什么软件
  • 建设网站的app英文成品网站模板下载
  • 破解版软件下载网站网站图片处理方案
  • 安徽网站建设方案服务汉中建设工程招标网
  • 网站建设公司企业模板下载阿里巴巴官网国际站
  • icp备案网站信息修改百度小说排行榜总榜
  • 崇明专业网站建设做网站后台要学什么
  • 专门做搜索种子的网站有哪些吉林平台网站建设多少钱
  • seo网站优化案例高端品牌裙子
  • 合肥需要做网站的公司无锡工程建设信息网站
  • 网站服务器有哪几种做招聘网站没有数据
  • 合肥手机网站制作建设自己做视频的网站
  • 公司网站备案名称广东建设项目备案公示网站
  • 网站建设设计维片长治网站建设公司
  • 商务网站建设兴田德润电话多少世界著名网站开发语言
  • 湖北网站建设公司微信手机网站设计
  • 徐州网站制作需要多少钱网站规划设计方案
  • 设计师常用网站门户重庆注册公司流程和费用标准
  • 网站图片太多怎么优化全民推广
  • 湖南做网站 e磐石网络做网站网站盈利会怎么样
  • 网站关闭流程保定风泉网络科技有限公司
  • 学做网站视频工作室网站需要备案吗
  • 个人网站 后台管理咸阳网站建设xymokj
  • 安阳淘宝网站建设保障性租赁住房管理平台
  • 建设银行网站最近都打不开吗在线设计网名生成器