【Java总结-线程】Java多线程的使用

创建线程的两种方式

继承Thread类

  • 定义一个类继承Thread类
  • 子类中重写Thread类中的run方法
  • 创建Thread子类的对象,就是创建了线程对象
  • 调用线程对象的start方法,启动线程,会自动调用run方法
public class TestThread extends Thread {

    public static void main(String[] args) {
        TestThread tt = new TestThread();
        tt.start();
    }
    //重写run方法
    public void run() {
        System.out.println("run");
    }
}

实现Runnable接口

  • 自已子类实现Runnable接口
  • 重写接口中的run方法
  • 通过Thread含参构造器创建线程对象
  • 将Runnable接口子类的对象作为实参传递
  • 调用Thread类的start方法,开启线程
public class TestThread {

    public static void main(String[] args) {
        T t = new T();
        Thread tt = new Thread(t);
        tt.start();
    }

}

class T implements Runnable {

    @Override
    public void run() {
        System.out.println("run");
    }

}

应该多使用Runnable接口实现多线程,可以实现多继承

String getName();返回当前线程
void setName(String name);//设置线程名字
static currentThread();//返回当前线程
setPriority(int new);//改变线程的优先级
getPriority()返回线程的优先级
Thread.sleep(10);//让线程睡10秒,阻塞

线程同步

synchroized(对象) {
    //需要同步的代码
}
public synchroinized void show(String name) {
    ...
}

线程通讯

wait();//让当前线程等待
notify();//唤醒线程
notifyAll();//唤醒正在排队的所有线程
时间: 2024-10-27 04:39:18

【Java总结-线程】Java多线程的使用的相关文章

Java的线程和多线程教程

Java线程(Java Thread)是执行某些任务的一种轻量级进程.Java中的Thread类提供了多线程(multi-threading)功能,应用程序能够创建多个线程并同一时候执行. 在一个应用程序中,一般会有两种类型的线程-用户线程(user thread)和守护线程(daemon thread).当我们启动引用程序时,首先创建用户线程main,我们能够创建多个用户线程和守护线程.当全部的用户线程都运行完成时,JVM就会终止程序. 对不同的线程,我们能够设置对应的优先级,但并不意味着高优

java中线程安全问题(网摘360)

在java中单线程和多线程是什么意思,他们有什么区别,分别的作用是什么? 在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”.多线程处理一个常见的例子就是用户界面.利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应.简单地说,就是说可以有多个任务同时进行. 单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行.因此,针对前面举的例子,必须等待程序完成了当前任务

java线程跟多线程

java创建线程两种方式: 1.继承Thread创建线程 /** * Created by lsf on 16/4/18. */ class NewThread extends Thread { NewThread(){ super(); //创建线程 start(); //启动线程 } public void run() { long starttime = System.currentTimeMillis(); System.out.println("child thread..."

多线程(三) java中线程的简单使用

============================================= 原文链接:多线程(三) java中线程的简单使用 转载请注明出处! ============================================= java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依旧是实现了Runnabel接口.考虑到java的

Java多线程基础(四)Java传统线程同步通信技术

Java多线程基础(四)Java传统线程同步通信技术 编写代码实现以下功能 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100次,如此循环50次. 分析 1)子线程循环10次与主线程循环100次必须是互斥的执行,不能出现交叉,下面代码中通过synchronized关键字实现此要求: 2)子线程与主线程必须交替出现,可以通过线程同步通信技术实现,下面代码中通过bShouldSub变量实现此要求: 其他需要注意的地方 1)其中business变量必须声

Java线程及多线程技术及应用

第6 章 Java线程及多线程技术及应用 6.1线程基本概念 1.进程和线程的基础知识 l 进程:运行中的应用程序称为进程,拥有系统资源(cpu.内存) l 线程:进程中的一段代码,一个进程中可以哦有多段代码.本身不拥有资源(共享所在进程的资源) 在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程. 区别: 1.是否占有资源问题 2.创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大. 3.进程为重量级组件,线程为轻量级组件 l 多进程: 在操作系统中能同时运行

26、Java并发性和多线程-线程池

以下内容转自http://ifeve.com/thread-pools/: 线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用.因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等. 我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程.只要池里有空闲的线程,任务就会分配给一个线程执行.在线程池的内部,任务被插入一个阻塞队列(Blocking Queue ),线程池里的线程会去取这个队列里的任务.当一个新任务插入

JAVA线程与多线程

去安卓面试的时候通常会问一些java问题,所以呢你可能觉得答问题时答案很蛋疼,今天来介绍一下线程. 先看几个概念: 线程:进程中负责程序执行的执行单元.一个进程中至少有一个线程. 多线程:解决多任务同时执行的需求,合理使用CPU资源.多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性. ● 线程 java中的线程 使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义.实例化和启动新线程. 一个Thread类实例只是一个对

Java线程及多线程技术及应用(二)

5线程同步互斥 1.线程同步互斥的一个示例 多个线程同时访问或操作同一资源时,很容易出现数据前后不一致的问题.请看下面的例子: 男孩拿着折子去北京银行海淀分行取钱 女孩拿着男孩的银行卡去西单百货疯狂购物 男孩走到柜台钱询问帐户余额 银行的业务员小姐亲切地告诉他:"您还有10000元!". 女孩看上了一件时髦的衣裳,准备买下 男孩在思考要取多少钱呢? 女孩到收银台准备刷卡消费 收银台刷卡机读取银行卡余额为10000元 女孩买衣服刷卡消费5000元 消费清单打印出来,消费:5000元  余

Java线程及多线程技术及应用(一)

1线程基本概念 1.进程和线程的基础知识 进程:运行中的应用程序称为进程,拥有系统资源(cpu.内存) 线程:进程中的一段代码,一个进程中可以哦有多段代码.本身不拥有资源(共享所在进程的资源) 在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程. 区别: 1.是否占有资源问题 2.创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大. 3.进程为重量级组件,线程为轻量级组件 3.多进程: 在操作系统中能同时运行多个任务(程序) 4.多线程: 在同一应用程序中有多个