java实现多线程编程

操作方法

  • 01

    本文详细讲述一下Java实现多线程编程的三种方法,多线程领域里实现多线程编程的总体思路就是重构run()方法以实现自己所需的功能,然后创建线程对象调用start()方法来启动线程,然后线程会自动执行run()方法的。 实现多线程编程的话,可以有三种方法 ,分别是继承java.lang.Thread类,二是实现java.lang.Runnable接口,三是可以在方法内部用匿名内部类来直接创建并启动新的线程。 第一种方法,继承java.lang.Thread类。 package com.cchongda.threadtest; public class ThreadTest extends Thread{ public int i =10; public void run(){                       System.out.println("当前线程是:"+Thread.currentThread());                       System.out.println("现在i的值为:"+i);                       try {                               Thread.sleep(1000);                            } catch (InterruptedException e) {                                       // TODO Auto-generated catch block                                     e.printStackTrace();                             }                         i = 15;                         System.out.println("修改后的i值为:"+i+Thread.currentThread());                    } public static void main(String[] args) { ThreadTest tt1 = new ThreadTest();                         ThreadTest tt2 = new ThreadTest();                          tt1.start();                         tt2.start();            } }   这样就能实现创建了两个线程 并启动这两个线程去执行run()方法了,。 第二种方法 通过实现Runnable接口,实现Runnable接口中的run()方法,但在创建多线程对象时有区别于通过继承Thread类来实现方式。具体看main()方法中创建并启动多线程的方式。 package com.cchongda.threadtest; public class ThreadTest extends Thread{ public int i =10; public void run(){                       System.out.println("当前线程是:"+Thread.currentThread());                       System.out.println("现在i的值为:"+i);                       try {                               Thread.sleep(1000);                            } catch (InterruptedException e) {                                       // TODO Auto-generated catch block                                     e.printStackTrace();                             }                         i = 15;                         System.out.println("修改后的i值为:"+i+Thread.currentThread());                    } public static void main(String[] args) { ThreadTest tt1 = new ThreadTest();                         ThreadTest tt2 = new ThreadTest(); Thread th1 = new Thread(tt1);     //创建线程对象的方式有区别于第一种方法。 Thread th2 = new Thread(t2); //Thread构造器的参数是指run方法别调用的对象。 th1.start();    th2.start();                         // tt1.start();   //之所以不能直接启动是因为本类是通过实现Runnable接口的,Runnable接口中就只有一个run方法,没有start()方法,必须先分配新的Thread对象之后才能调用start()方法。                         //tt2.start();            } } 第三种方法 利用匿名内部类来直接创建并启动多线程。 package com.cchongda.threadtest;                       public class ThreadTest{                                   public static void main(String[] args) throws Exception{ System.out.println("sdfasdsdfsdfsdf");                                     new Thread(){//用匿名内部类 来实现创建新的线程                                                    public void run(){                                                    int i = 10;                                                   System.out.println("当前线程是:"+Thread.currentThread());                                                    System.out.println("现在i的值为:"+i);                                      try {                                                     Thread.sleep(1000);                                            } catch (InterruptedException e) {                                                         // TODO Auto-generated catch block                                                       e.printStackTrace();                                          }                                       i = 15;                                   System.out.println("修改后的i值为:"+i+Thread.currentThread());                             }                     }.start();                                         System.out.println("wwwwwwwwwwwwwwwwwwwwwwwwwww");                 }       } 输出结果为: sdfasdsdfsdfsdfwwwwwwwwwwwwwwwwwwwwwwwwwww当前线程是:Thread[Thread-0,5,main]现在i的值为:10修改后的i值为:15Thread[Thread-0,5,main] 可以看到主线程先执行了main()方法在方法里边又创建了一个新的线程,然后新线程又执行了run()方法。 到此 实现Java多线程编程的三种方法整理完毕。

(0)

相关推荐

  • linux多线程编程详解教程

    这篇文章主要介绍了linux多线程编程详解教程,提供线程通过信号量实现通信的代码,大家参考使用吧 线程分类 线程按照其调度者可以分为用户级线程和核心级线程两种。 (1)用户级线程 用户级线程主要解决的 ...

  • Linux下如何实现shell多线程编程以提高应用程序的响应

    Linux中多线程编程拥有提高应用程序的响应、使多cpu系统更加有效等优点,下面小编将通过Linux下shell多线程编程的例子给大家讲解下多线程编程的过程,一起来了解下吧。 #!/bin/bash ...

  • 在Linux系统上进行openmp多线程编程的方法

    OpenMP是一种多处理器多线程的编程语言,能够支持多个平台,包括Linux系统,那么Linux下要如何进行openmp多线程编程呢?一起来了解下吧。 关键语法: 代码如下: #inlcude 《om ...

  • Linux下的多线程编程和fork()函数详解

     一.fork()函数 在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位).在Linux系统中 创建进程有两种方式:一是由操作 ...

  • JAVA的面向对象编程--------课堂笔记

    JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程. 面向过程的基本单元是函数. 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有 ...

  • MFC多线程编程实例

    一般情况下,调用AfxBeginThread()来一次性地创建并启动一个线程,但是也可以通过两步法来创建线程:首先创建CWinThread类的一个 对象,然后调用该对象的成员函数CreateThrea ...

  • MFC对多线程编程的支持

    摘要:关于MFC对多线程编程的支持深入研究. 步骤/方法 01 例程3 MultiThread3 传送一个结构体给一个线程函数也是可能的,可以通过传送一个指向结构体的指针参数来完成.先定义一个结构体: ...

  • java猜拳游戏编程

    如何利用java制作一个猜拳游戏的编程 操作方法 01 导入Scanner类,然后搭建java外框架和java程序入口 创建Scanner对象,对象名称为in 02 系统输出内容,然后系统接收你的出拳 ...

  • java如何多线程并发访问解决方案

    synchronized关键字主要解决多线程共享数据同步问题. ThreadLocal使用场合主要解决多线程中数据因并发产生不一致问题. ThreadLocal和Synchonized都用于解决多线程 ...