Java中的多线程

1、 线程中的主要方法

    a) isAlive() 判断线程是否还活着,即线程是否未终止

    b) getPriority() 获得线程的优先级

    c) setPriority() 设置线程的优先级

    d) Thread.sleep() 设置线程休眠的时间

    e) jion() 把当前线程与该线程合并

    f) yield() 让出CUP

    g) 线程的优先级

            i. Thread.MIN_PRIORITY = 1 最小优先级

            ii. Thread.NORM_PRIORITY = 5 默认优先级

            iii. Thread.MAX_PRIORITY = 10 最大优先级

2、 线程的中断

        a) Stop() 已过时,基本不用

        b) Interrupt() 简单,粗暴

        c) 推荐使用的是设置标志位

3、 线程的高级操作

        a) wait() 使当前线程等待,直到被其线程唤醒

        b) notify() 唤醒等待的线程

4、 实现同步的两种方式(主要是synchronized的使用)

        a) 锁代码块

                i. Synchronized(object){要锁的代码块}

        b) 锁方法(推荐使用)

                i. Synchronized void method(){}

 

1、 Java多线程的实现主要有两个方式,一个是通过继承Thread类,一个是Runnable接口的实现。在使用多线程时主要用到两个方法一个是重写run()方法,用来实现将要执行的代码。第二个方法是start(),用来启动线程。

2、 Thread类的实现

public class ThreadDemo extends Thread{

    public void run(){
        for(int i = 0; i < 20; i++){
            System.out.println(Thread.currentThread().getName()+i);
        }
    }
    public static void main(String[] args) {

        ThreadDemo td1 = new ThreadDemo();
        td1.setName("线程1: ");

        ThreadDemo td2 = new ThreadDemo();
        td2.setName("线程2: ");

        //获取优先级
        System.out.println("线程一的优先级为:"+td1.getPriority());

        //设置线程的优先级优先级的值为0 - 10 从小到大
        td1.setPriority(MIN_PRIORITY);
        td2.setPriority(MAX_PRIORITY);

        td1.start();
        td2.start();

    }

}

 

 

1、 Runnable接口的实现

ublic static void main(String[] args) {
        TicketRunnable tr = new TicketRunnable();

        Thread td1 = new Thread(tr);
        td1.setName("窗口1");
        Thread td2 = new Thread(tr);
        td2.setName("窗口2");
        Thread td3 = new Thread(tr);
        td3.setName("窗口3");

        td1.start();
        td2.start();
        td3.start();
    }
时间: 2024-12-19 10:46:41

Java中的多线程的相关文章

浅谈java中异步多线程超时导致的服务异常_java

在项目中为了提高大并发量时的性能稳定性,经常会使用到线程池来做多线程异步操作,多线程有2种,一种是实现runnable接口,这种没有返回值,一种是实现Callable接口,这种有返回值. 当其中一个线程超时的时候,理论上应该不 影响其他线程的执行结果,但是在项目中出现的问题表明一个线程阻塞,其他线程返回的接口都为空.其实是个很简单的问题,但是由于第一次碰到,还是想了一些时间的.很简单,就是因为阻塞的那个线 程没有释放,并发量一大,线程池数量就满了,所以其他线程都处于等待状态. 附上一段自己写的调

mongodb-Mongodb在java中,多线程update时报错,请问是哪里出现的问题?

问题描述 Mongodb在java中,多线程update时报错,请问是哪里出现的问题? public class LocationPressureTest { private Todo todo; private int number; static Mongo mg = new Mongo("localhost", 27017); static DB db = mg.getDB("location_pressure_test_db"); static DBColl

java线程-java中的多线程?线程的并发问题

问题描述 java中的多线程?线程的并发问题 多线程具体代表java中程序的什么?它指的实际功能上的什么情况?详细求解 解决方案 多线程和进程的关系详解: 1.当我们运行QQ程序时,操作系统就会为这个程序创建一个QQ进程(QQ~PCB)并且分配CPU.内存等资源. 2.但这个进程中包含着:发送大型的线程.接受文件的线程.发送文字信息的线程.发送文字信息的线程等多个不同功能的线程. 因而我们才能一边发送文件,一边发送文字信息同时操作.这些线程都共享着QQ进程中的CPU.内存等资源. 总结:所以说进

举例讲解Java中的多线程编程_java

Java创建线程(Runnable接口和Thread类) 大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的依次介绍了每一种方式.实现Runnable接口 创建线程的最简单的方法就是创建一个实现Runnable 接口的类.Runnable抽象了一个执行代码单元.你可以通过实现Runnable接口的方法创建每一个对象的线程.为实现Runnable 接口,一个类仅需实现一个run()的简单方法,该方法声明

Java中使用多线程模拟多站点售票过程

这是一个在并发状态下对共享资源的多线程访问.这些访问必须是互斥的进行,因为涉及到对资源的修改.假设现在销售火车票.目的地有3个,分别是北京,天津和上海.使用一个枚举类型表示. Destation.java package com.zj.tickets; public enum Destation { BEIJING, SHANGHAI, TIANJING } 下面设计车票类,final int original表示车票基数:int current表示当前还有多少张票:Destation dest

如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例

wait, notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视.本文对这些关键字的使用进行了描述. 在 Java 中可以用 wait.notify 和 notifyAll 来实现线程间的通信..举个例子,如果你的Java程序中有两个线程--即生产者和消费者,那么生产者可以通知消费者,让消费者开始消耗数据,因为队列缓冲区中有内容待消费(不为空).相应的,消费者可以通知生产者可以开始生成更多的数据,因为当它消耗掉某些数据后缓冲区不再

Java中start和run方法的区别

一.问题引入         说到这两个方法就不得不说多线程,说到多线程就不得不提实现多线程的两种方式继承Thread类和实现Runable接口,下面先看这两种方式的区别. 二. Java中实现多线程的两种方式 继承Thread类       2.  实现Runable接口 不管采用哪种方式,覆盖run方法时既可以用内部类也可以用外部类,不过一般采用内部类.       3.  两种方式的比较 实际中往往采用实现Runable接口,一方面因为java只支持单继承,继承了Thread类就无法再继续

Java 程序中的多线程

程序|多线程 在Java程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应该能够编写简单的多线程程序. 为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 - 打印机.磁盘.数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含

总结Java中线程的状态及多线程的实现方式_java

线程的状态线程状态图: 说明: 线程共包括以下5种状态.1. 新建状态(New) : 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread().2. 就绪状态(Runnable): 也被称为"可执行状态".线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程.例如,thread.start().处于就绪状态的线程,随时可能被CPU调度执行.3. 运行状态(Running) : 线程获取CPU权限进行执行.需要注意的是,线