Java基础巩固(二)——多线程(java多线程实战指南)

  本篇文章为你整理了Java基础巩固(二)——多线程(java多线程实战指南)的详细内容,包含有多线程教程 java java多线程实战指南 java多线程有几种实现方法,都是什么 java多线程视频教学 Java基础巩固(二)——多线程,希望能帮助你了解 Java基础巩固(二)——多线程。

  程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。

  进程是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。

  一个进程可以包含若干个线程,线程是cpu调度和执行的单位。

  进程是资源分配的最小单位,线程是程序执行的最小单位;

  在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程、gc线程;

  在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能认为干预的;

  2.线程的创建方式

  通过继承Thread类来创建

  

//创建线程方式一:继承Thread类,重写run()方法

 

  public class ThreadPractice extends Thread {

   @Override

   public void run() {

   for (int i = 0; i i++) {

   System.out.println("正在运行线程一__" + i);

   public static void main(String[] args) {

   for (int i = 0; i 200; i++) {

   System.out.println("正在运行 主线程__" + i);

  /* xx.start()和xx.run()是不同的,前者是创建进程,后者是运行任务,前者线程与主线程同时进行,后者根据主线程中的顺序先后进行 */

   ThreadPractice thread1 = new ThreadPractice();

   thread1.start();

  // thread1.run();

  

 

  通过实现Runnable接口来创建(可以实现多个线程对同一个对象的调用,避免了单继承的局限性)

  

//创建线程方式二:实现Runnable接口

 

  public class ThreadPractice3 implements Runnable {

   @Override

   public void run() {

   for (int i = 0; i i++) {

   System.out.println("正在运行线程一__" + i);

   public static void main(String[] args) {

   for (int i = 0; i 200; i++) {

   System.out.println("正在运行 主线程__" + i);

   ThreadPractice3 thread1 = new ThreadPractice3();

   new Thread(thread1).start();

  

 

  通过实现Callable接口来创建(优点是可以定义返回值类型,抛出异常)

  

public class ThreadPractice4 implements Callable Boolean {

 

   private String name;

   private int age;

   public ThreadPractice4(String name, int age) {

   this.name = name;

   this.age = age;

   @Override

   public Boolean call() {

   test test1 = new test();

   test1.Show(name, age);

   return true;

   public static void main(String[] args) throws ExecutionException, InterruptedException {

   ThreadPractice4 thread1 = new ThreadPractice4("小白",15);

   ThreadPractice4 thread2 = new ThreadPractice4("小黑",20);

   ThreadPractice4 thread3 = new ThreadPractice4("小红",30);

   //创建执行服务

   ExecutorService service = Executors.newFixedThreadPool(3);

   //提交执行

   Future Boolean r1 = service.submit(thread1);

   Future Boolean r2 = service.submit(thread2);

   Future Boolean r3 = service.submit(thread3);

   //获取结果

   boolean rs1 = r1.get();

   boolean rs2 = r2.get();

   boolean rs3 = r3.get();

   System.out.println(rs1);

   System.out.println(rs2);

   System.out.println(rs3);

   //关闭服务

   service.shutdownNow();

  
public void Show(String name, int age) {

   System.out.println("这个人叫" + name + ",今年" + age + "岁。");

  

 

  此方法总结为以下几步:

  实现Callable接口,需要返回值类型,例如上诉例子的Boolean

  重写call方法,需要抛出异常

  创建目标对象

  创建执行服务:ExecutorService service = Executors.newFixedThreadPool(1);

  提交执行:Future r1= service.submit(t1);

  获取结果:boolean rs1 = r1.get();

  关闭服务:service.shutdownNow();

  3.lambda表达式(包括五种类的演示)

  

interface Ilove{

 

   void love(int a);

  //第一种,正常类

  class Love implements Ilove {

   @Override

   public void love(int a) {

   System.out.println("i love - " + a);

  以上就是Java基础巩固(二)——多线程(java多线程实战指南)的详细内容,想要了解更多 Java基础巩固(二)——多线程的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: