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

网站排名提升易下拉教程网站如何加入百度联盟

网站排名提升易下拉教程,网站如何加入百度联盟,苏州建网站的公司一站式服务,对于政务网站建设的建议线程是什么: 进程是程序的一次动态执行的过程,线程是进程中执行运算最小单位,一个进程在其执行过程中可以产生多个线程,而线程必须在某个进程内执行。 如果在一个进程中同时运行了多个线程(必须包含一个主线程&#…

线程是什么:

进程是程序的一次动态执行的过程,线程是进程中执行运算最小单位,一个进程在其执行过程中可以产生多个线程,而线程必须在某个进程内执行。

如果在一个进程中同时运行了多个线程(必须包含一个主线程),用来完成不同的工作,则称之为“多线程”多个线程交替占用CPU资源,而非真正的并行执行

主线程:

main()方法即为主线程入口

产生其他子线程的线程

必须最后完成执行,因为它执行各种关闭动作

一、创建线程的三种方法:

1.Thread类创建线程

继承Thread类,重写run()方法线程要执行的操作放在run()方法中,通过调用start()方法来启动线程start()方法只属于Thread类

注意:创建线程对象时不会执行线程,必须调用线程对象的start方法才能使线程开始

线程每次执行时长由分配的CPU时间片长度决定

主线程:
public class TestThread {public static void main(String[] args) {//查看主线程Thread thread = Thread.currentThread();System.out.println(thread.getName());//启动子线程MyThread myThread = new MyThread();myThread.start();}
}

子线程:
public class MyThread extends Thread{@Overridepublic  void run(){for (int i=0;i<10;i++){System.out.println(Thread.currentThread().getName()+"==="+i);}}
}

查看线程名字:

查看线程名:Thread.currentThread().getName()

这里的currentThread()是静态方法

public static void main(String[] args) {//查看主线程Thread thread = Thread.currentThread();System.out.println(thread.getName());//或者System.out.println( Thread.currentThread().getName());}

直接调用run()和start()区别:

使用run( )方法

同步执行,只有主线程一条执行路径

使用star( )方法

异步执行,多条执行路径,主线程和子线程并行交替执行

  • 直接调用run()就是同步执行,main方法会等run方法执行完以后才会执行下面的操作;
  • 调用star()方法可以实现异步执行,由线程调度器决定先执行main方法还是run方法,不是由程序代码中的 start() 调用的顺序直接决定的。

同步和异步:

也就是说一个程序需要运行完了有结果了才能进行下一个线程,这样这个程序就会堵塞其他的程序,这就是同步异步就是这个程序在运行的时候我仍然可以不管他运行别的程序

多线程可以将同步程序变为异步的,从而增加系统资源的利用率

2.Runnable接口创建线程:

因为Thread是单根继承,继承Thread之后不能够继承其他的类了。使用Runnable接口可以解决这个问题。

Runnable接口中声明了一个run()方法,即public void run()。

例子:使用Runnable接口创建线程

1.实现Runnable接口,并且实现Runnable接口的run()方法

2.创建Thread类对象,使用Runnable接口实现类的对象作为构造方法的参数 Thread td = new Thread(new Test02());

3.调用start方法

子线程:
public class MyRunnalbe  implements Runnable{@Overridepublic  void run() {for (int i = 0; i < 10; i++) {System.out.println(Thread.currentThread().getName() + "===" + i);}}
}

主线程:

注意:这个start方法是Thread类独有的

所以要创建一个thread对象,把myRunnalbe装进去

public class TestRunnable {public static void main(String[] args) {MyRunnalbe myRunnalbe = new MyRunnalbe();Thread thread = new Thread(myRunnalbe);thread.start();}
}

3.Callable接口创建线程:

首先介绍一下这个接口:

  1. 它需要重写call方法,而不是run了,
  2. 并且call()方法有返回值String,用futureTask.get()来接收返回值
  3. 它是一个泛型,默认返回为Object,可以在泛型中设置想要返回的类型

主程序:
public class TestMyCallable {public static void main(String[] args) {MyCallable myCallable = new MyCallable();FutureTask<String> futureTask = new FutureTask<>(myCallable);Thread thread = new Thread(futureTask);thread.start();//接收返回值try {System.out.println(futureTask.get());} catch (Exception e) {e.printStackTrace();}}
}

子线程:
public class MyCallable implements Callable<String> {@Overridepublic String call() throws Exception {for (int i = 0; i < 10; i++) {System.out.println(Thread.currentThread().getName() + "===" + i);}return "蛋蛋最牛掰";}
}

http://www.yayakq.cn/news/539265/

相关文章:

  • 如何把自己做的网站放到微信上网站开发和设计人员的岗位要求
  • 网站砍价活动怎么做wordpress去除图片id
  • 企业网站模板官网网站建设泉州效率网络
  • 有什么网站可以做毕业影像宝安网页设计培训
  • ps做的网页怎么导入网站计算机网络技术电商网站建设与运营方向
  • 网站只做1单生意被罚4万两级违法网页与网站
  • ico加网站专业建设情况
  • 网站制作报价多少新乡市置顶网络技术有限公司
  • 上海网站建设推荐案例怎么搭建自己的博客网站
  • 网站发的文章如何优化seo网络推广公司排名
  • 2网站建设总结我帮你建站
  • 莆田网站格在哪里做上海营销咨询公司
  • asp网站后台制作网站规划内容方案
  • 网站开发架构mvc靖江做网站的
  • 美食网站建设页面要求上海网站建设企业名录
  • 网站备案为什么 没有批复文件公众号购买
  • 廊坊网站建设优化网站开发网站运营怎么做
  • 网站设计与管理刚刚做的网站怎么排名
  • 天津网站建设方案策划微信公众平台怎样开发
  • 平面设计软件网站吉林省建设工程造价信息网官网
  • 如何自建公司网站资讯网站策划怎么写
  • 温州网站开发技术wordpress制作自己的企业主题
  • 沧州英文模板建站直装模板源码
  • 深圳企业网站建设收费标准wordpress网页树叶特效
  • 百度站点微信网站 手机网站
  • 做游戏网站定州住房和城乡建设局网站
  • 龙果学院大型网站稳定性建设搭建公司
  • 网站项目案例iapp源码
  • 网站被k 换个域名可以ps 做ui比较好的网站有哪些
  • 学网站开发需要多久网站 建设ppt模板