zoukankan      html  css  js  c++  java
  • 08-Java 多线程编程

    1、Java多线程-线程与进程的区别

    (1)线程:程序中单独依靠程序进行运行

                    线程是程序中的顺序控制流,只能使用分配给程序的资源和环境。

    (2)进程:执行中的程序

    一个进程可以包含一个或多个线程。

    一个进程至少要包含一个线程。

    (3)单线程:程序中只存在一个线程,实际上主方法就是一个主线程。

    (4)多线程:

    多线程是在一个程序中运行多个任务。

    多线程的目的是更好的使用CPU资源。

    2、Java多线程-线程的实现

    (1)在Java 中。线程的实现有2种:继承Thread类和实现Runnable 接口

    (2)Thread类:~ 是在java.lang 包中定义的,继承~ 类必须重写run()方法。

    定义格式:

    class className extends Thread {  run() { };   }
    public class MyThread extends Thread{
    private String name;
    public MyThread(String name){
        this.name=name;
        }
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println(name+":"+i);
            }
    super.run();
    
    public class ThreadDemo01 {
    
        public static void main(String[] args) {
             MyThread t1=new MyThread("A");
             MyThread t2=new MyThread("B");
             t1.run();
             t2.run();
            //线程的启动是通过start()。
             t1.start();
             t2.start();

    “A和B是并发执行哦啊”

    (3)Runnable 接口

    public class MyRunnable implements Runnable{
    private String name;
    public MyRunnable(String name){
        this.name=name;
        }
    public void run(){
        for (int i = 0; i < 1000; i++) {
            System.out.println(name+":"+i);
    public class ThreadDemo01 {
    MyRunnable r1=new MyRunnable("A");
            MyRunnable r2=new MyRunnable("B");
            Thread t1=new Thread(r1);
            Thread t2=new Thread(r2);
            t1.start();
             t2.start();

    3、Java多线程-线程的状态

    (1)创建状态:准备好了一个多线程的对象。即new 了一个Thread 对象。

    (2)就绪状态:调用了start()方法,等待CPU进行调度。

    (3)运行状态:执行 run () 方法

    (4)阻塞状态:暂时停止执行,可能将资源交给其他线程使用。

    (5)终止状态:(死亡状态):线程销毁。

    4、Java多线程-线程的常用方法

    (1)取得线程名称:getName ()

    (2)取得当前线程对象:currentThread()

    (3)判断线程是否启动:isAlive()

    (4)线程的强行运行:join()

    (5)线程的休眠:sleep()

    (6)线程的礼让:yield()

    5、Java多线程-线程的优先级

    (1)优先级顺序设置:

    1-MIN_PRIORITY

    10-MAX_PRIORITY

    5-NORM_ PRIORITY

    如果什么都不设置默认值是5

    6、Java多线程-线程同步与死锁

    (1)同步代码块:在代码块上加上“synchronized”关键字,则此代码块就称为同步代码块。

    (2)同步代码块格式:synchronized(同步对象){   需要同步的代码块;   } (记住:资源共享的时候需要同步。)

    (3)同步方法:除了代码块可以同步,方法也是可以同步的。

    (4)方法同步格式:synchronized void 方法名称(){}

    (5)死锁:学生找工作(高薪)

               企业需要你有工作经验(经验)

              若无经验又要高薪,即发生死锁。解决死锁只需要一方降低要求即可。

    7、Java多线程-线程生命周期

  • 相关阅读:
    小组项目进度汇报
    小组项目进程展示
    结队项目
    小组计划
    个人项目:数独
    问题
    自我介绍
    结对项目
    软件工程基础大项目——数独问题
    关于软件工程的几个问题
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/6017588.html
Copyright © 2011-2022 走看看