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

网站有什么类型中国十大企业培训机构排名

网站有什么类型,中国十大企业培训机构排名,男女做那个全面视频网站,免费建设网站和域名一、线程 1. 什么是线程? 线程(Thread)是一个程序内部的一条执行流程。程序中如果只有一条执行流程#xff0c;那这个程序就是单线程的程序。 2. 多线程 多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行) 3. 如何在程序中创建出多条线程? Ja…一、线程 1. 什么是线程? 线程(Thread)是一个程序内部的一条执行流程。程序中如果只有一条执行流程那这个程序就是单线程的程序。 2. 多线程 多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行) 3. 如何在程序中创建出多条线程? Java是通过java.lang.Thread 类的对象来代表线程的。 3.1 线程创建方式一:继承Thread类 package com.test;/*** 目标掌握线程的创建方式一集成Thread类*/ public class LogBackTest {public static void main(String[] args) {//main方法由一条磨人的主线程负责执行//3.创建线程类的对象代表一个线程Thread myThread new MyThread();//4.启动线程自动执行run方法myThread.start();//main线程 t线程for (int i 0; i 6; i) {System.out.println(主线程i);}} }/*** 1.让子类继承Thread类*/ class MyThread extends Thread{//2.必须重写Thread类的run方法Overridepublic void run() {for (int i 0; i 5; i) {System.out.println(Mythread线程输出i);}} } 多线程的注意事项 1、启动线程必须是调用star方法不是调用run方法。 2、不要把主线程任务放在启动子线程之前。 3.2 线程创建方式二:实现Runnable接口 package com.test;public class Thread2 {public static void main(String[] args) {//3. 创建任务对象Runnable myRun new MyRun();//4. 把任务对象交给一个线程对象处理new Thread(myRun).start();for (int i 0; i 6; i) {System.out.println(主线程i);}} }/*** 1. 定义一个人物类实现Runnable接口*/ class MyRun implements Runnable{//2. 重写run方法Overridepublic void run() {//线程要执行的任务for (int i 0; i 5; i) {System.out.println(子线程i);}} } 线程创建方式二的匿名内部类写法 可以创建Runnable的匿名内部类对象。再交给Thread线程对象。再调用线程对象的start()启动线程。 package com.test;public class ThreadTest1 {public static void main(String[] args) {Runnable myThread new Runnable() {Overridepublic void run() {for (int i 0; i 100; i) {System.out.println(子线程一 i);}}};new Thread(myThread).start();//简化形式1new Thread(new Runnable() {Overridepublic void run() {for (int i 0; i 100; i) {System.out.println(子线程二 i);}}}).start();//简化形式2new Thread(()-{for (int i 0; i 100; i) {System.out.println(子线程三 i);}}).start();for (int i 0; i 100; i) {System.out.println(主线程i);}} } 3.3 线程创建方式三:实现Callable接口 前两种线程创建方式都存在的一个问题 假如线程执行完毕后有一些数据需要返回他们重写的run方法均不能直接返回结果。 怎么解决这个问题? JDK5.0提供了Callable接口和FutureTask类来实现(多线程的第三种创建方式) package com.test;import javax.print.DocFlavor; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask;public class ThreadTest3 {public static void main(String[] args) throws Exception {//3、创建一个Callble对象CallableString myCallable new MyCallable(100);//4、把Callbale的对象封装成一个FutureTask对象任务对象//未来任务对象的作用//是一个任务对象实现了Runnable对象//可以在线程执行完毕之后用未来任务对象调用get方法获取线程执行完毕后的结果FutureTaskString f1 new FutureTask(myCallable);//5、把任务对象交给一个Thread对象new Thread(f1).start();//6、获取线程执行完毕后返回的结果//注意如果执行到这儿加入上面的线程还没有执行完毕这里的代码会暂停等待上面线程执行完毕后才会获取结果String s f1.get();System.out.println(s);} }/*** 1、让这个类实现Callable接口*/ class MyCallable implements Callable{private int n;MyCallable(){}MyCallable(int n){this.nn;}//2、重写call方法Overridepublic String call() throws Exception {//描述线程的任务返回线程执行的结果int sum0;for (int i 0; i this.n; i) {sumi;}return sum;} } package com.test;import sun.awt.windows.ThemeReader;/*** 目标掌握线程的创建方式一集成Thread类*/ public class LogBackTest {public static void main(String[] args) {//main方法由一条磨人的主线程负责执行//3.创建线程类的对象代表一个线程Thread t1 new MyThread(我是卡卡西);MyThread t2 new MyThread(我是小乔);//4.启动线程自动执行run方法 // t1.setName(1号线程);t1.start();//main线程 t线程System.out.println(t1.getName()); // t2.setName(2号线程);t2.start();System.out.println(t2.getName());//主线程对象的名字//哪个线程执行它它就会得到哪个线程对象。Thread thread Thread.currentThread();thread.setName(牛逼线程);System.out.println(thread.getName());for (int i 0; i 1; i) {System.out.println(主线程的输出i);}} }/*** 1.让子类继承Thread类*/ class MyThread extends Thread{MyThread(){}MyThread(String name){super(name);}//2.必须重写Thread类的run方法Overridepublic void run() {Thread thread Thread.currentThread();for (int i 0; i 1; i) {System.out.println(thread.getName()线程输出i);}} } package com.test;public class ThreadTest4 {public static void main(String[] args) throws InterruptedException {for (int i 0; i 6; i) {System.out.println(i);if(i3){//会让当前执行的线程暂停2s再继续执行//项目经理让我加上这行代码如果用户交钱了我就注释掉Thread.sleep(2000);}}//join方法作用让当前调用这个方法的线程先执行完MyThread t1 new MyThread();t1.start();t1.join();MyThread t2 new MyThread();t2.start();t2.join();MyThread t3 new MyThread();t3.start();t3.join();} } Thread其他方法的说明 Thread类还提供了诸如:yield、interrupt、守护线程、线程优先级等线程的控制方法在开发中很少使用这些方法会后续需要用到的时候再讲解。
http://www.zqtcl.cn/news/856792/

相关文章:

  • 企业网站设计布局方式如何在社交网站上做视频推广方案
  • 惠城网站建设服务做1688网站需要懂英语吗
  • 请人做网站要多少钱搜索引擎优化概述
  • 郑州中森网站建设免费网站app生成软件
  • 做诚信通网站seo新手快速入门
  • 做网站怎么去找客户带会员中心WordPress免费主题
  • 网站建设资费安平县护栏网站建设
  • 做视频网站侵权吗个体户网站备案
  • 苏州姑苏区建设局网站智慧团建登录官网手机版
  • 如何搭建一个视频网站广告制作方案
  • 网站策划ps苏州建站公司速找苏州聚尚网络
  • 网站备案 关闭客户制作网站时的问题
  • 项目网站分析推荐做ppt照片的网站
  • wordpress注明网站网站建设需要什么手续
  • 厦门过路费网站福建省建设执业资格注册中心网站
  • c 网站开发案例详解手机网站返回顶部代码
  • 济南微网站建设图书馆评估定级关于网站建设标准
  • flash型网站宝塔面板做网站绑定域名
  • 建设网站的策划书门户网站 流量
  • 佛山高端网站建设便宜自适应网站建设
  • 网络营销创意案例桂林seo公司推荐23火星
  • 网站开发知识产权归属问题wordpress会计模板下载
  • 昆明网站的优化自媒体是干什么的
  • 大成建设株式会社网站删掉wordpress主题
  • 个人网站备案类型网络维护培训班
  • 做网站的可以注册个工作室吗一个网站两个域名吗
  • 网站建设要准备什么资料网站建设 锐颖科技
  • 如何建设网站山东济南兴田德润官网电子商城官网
  • 网站如何做支付宝接口免费ppt自动生成器
  • 泰安市建设职工培训中心网站官网seo经理招聘