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

南乐网站建设app推广代理

南乐网站建设,app推广代理,行业网站建设收费明细,广告联盟怎么接单线程:是一个程序内部的一条执行流程。 多线程:是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)。 创建线程: 多线程的创建方式之一:继承Thread类 1.定义一个子类MyThread继承线程类…

 线程:是一个程序内部的一条执行流程。

多线程:是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)。

创建线程:

多线程的创建方式之一:继承Thread类

1.定义一个子类MyThread继承线程类java.lang.Threaf,重写run()方法

2.创建MyTread类的对象

3.调用线程对象的start()方法启动线程(启动后还是执行run()方法的)

优点:编码简单

缺点:线程类已经继承了Thread,无法继承其他类,不利于功能的扩展。

如下就是一个多线程。

创建线程的注意事项:

1.启动线程必须是调用start方法,不是调用run方法。

直接调run方法会当成普通方法执行,此时相当于还是单线程执行

只有调用start方法才是启动一个新的线程执行。

2.不要把主线程任务放在启动子线程之前。

public class Test {//main方法本身 是线程,main方法就是一个线程,main方法启动了线程,main方法就是主线程public static void main(String[] args) {//创建线程的创建方式一:继承Thread类,重写run方法,调用start方法启动线程// 创建线程对象MyThread myThread = new MyThread();// 启动线程myThread.start();for (int i = 0; i < 10; i++) {System.out.println("主线程:" + i);}}
}
// 定义一个类继承Thread类,成为线程类class MyThread extends Thread{// 重写Thread类的run方法@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("线程1:" + i);}}
}

多线程的创建方法二:实现Runnable接口

public class ThreadDemo2 {public static void main(String[] args) {//sRunnable runnable=new MyRunnable();Thread t = new Thread(runnable);t.start();for (int i = 0; i < 10; i++) {System.out.println("主线程任务正在执行"+i);}}
}
//定义一个线程任务实现Runnable接口
class MyRunnable implements Runnable{@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("子线程任务正在执行"+i);}}
}

匿名内部类写法

public static void main(String[] args) {//sRunnable runnable=new Runnable(){public void run() {for (int i = 0; i < 10; i++) {System.out.println("子线程任务正在执行"+i);}}};Thread t = new Thread(runnable);t.start();for (int i = 0; i < 10; i++) {System.out.println("主线程任务正在执行"+i);}}

线程的创建方式三:实现Callable接口、FuntureTask类类实现

前两种创建方式存在问题:重写的run方法不能直接返回数据 结果。

JDK5.0提供了Callable接口和FutureTask类来实现(多线程第三种创建方式)

优点:可以返回线程执行完毕后的结果。

 

  

 public static void main(String[] args) {Callable<Integer> myCallable = new MyCallable(15);FutureTask<Integer> task = new FutureTask<>(myCallable);Thread t = new Thread(task);t.start();Callable<Integer> myCallable1= new MyCallable(20);FutureTask<Integer> task1 = new FutureTask<>(myCallable1);Thread t1 = new Thread(task1);t1.start();try {int sum = task.get();System.out.println("子线程1计算结果为:"+sum);} catch (Exception e) {e.printStackTrace();}try {int sum = task1.get();System.out.println("子线程2计算结果为:"+sum);} catch (Exception e) {e.printStackTrace();}for (int i = 0; i < 10; i++) {System.out.println("主线程任务正在执行"+i);}}
}
class MyCallable implements Callable<Integer> {int j;public MyCallable(int j) {this.j = j;}@Overridepublic Integer call() throws Exception {for (int i = 0; i < 10; i++) {j+=i;}return j;}

三种线程的创建方式不同点

线程的常见方法

Thread的常用方法

   

public class Threadmain {public static void main(String[] args) {//创建两个线程Thread t1=new MyThread1();Thread t2=new MyThread1();t1.start();t2.start();System.out.println(t1.getName());System.out.println(t2.getName());t1.setName("线程1");t2.setName("线程2");System.out.println(t1.getName());System.out.println(t2.getName());try{Thread.sleep(1000);}catch (InterruptedException e){e.printStackTrace();}try{t1.join();}catch(InterruptedException e){e.printStackTrace();}}
}
class MyThread1 extends Thread{public void run(){for (int i = 0; i < 10; i++) {System.out.println(Thread.currentThread().getName()+"正在运行"+i);}}
}

 

http://www.dtcms.com/wzjs/353195.html

相关文章:

  • b站在哪看直播响应式网站建设
  • 茶网站源码南昌seo技术外包
  • 网站建设最简单的教程线下引流推广方法
  • 装修家具营销推广seo
  • 做化妆刷的外贸网站aso优化师
  • 建立网站策划书电脑优化
  • 织梦网站后台空白推广下载app拿佣金
  • 有专门做ppt的网站最简单的网页制作
  • 响应式网站概况百度关键词工具入口
  • 宁波网络公司在哪里西安seo和网络推广
  • 海宏集团网站建设方案公司培训
  • 龙岗附近公司做网站建设多少钱360优化大师软件
  • 为什么自己做不出一个好网站谷歌sem推广
  • 自己建立公司网站 怎样做中国最权威的网站排名
  • 云南省建设交易中心网站临沂网站建设优化
  • 怎么去投诉做网站的公司什么是seo搜索优化
  • 用织梦做的网站济南做网站比较好的公司
  • 学做网站需要懂什么怎么制作自己的个人网站
  • 独立网站优化的方法江苏网站推广
  • 青岛seo做的好的网站线上营销策略
  • 做问卷的网站有哪些搜索引擎优化人员优化
  • wordpress html5 win8seo费用
  • 威海房产网关键词seo
  • 江西旅游网站建设方案2345浏览器
  • 二级域名网站怎么做班级优化大师怎么加入班级
  • 网站建设套餐报价广告营销推广方案
  • 高清网站推广免费下载衡阳有实力seo优化
  • 企业网站建设方案范本网络营销课程个人总结3000字
  • 机票旅游网站建设成都seo推广
  • wex5做网站seo网站优化系统