java 线程 (一) Thread
package cn.sasa.demo1;
public class Test {
public static void main(String[] args) throws InterruptedException {
/**
* 进程:
* 进程指正在运行的程序。当一个程序进入内存运行,即变成一个进程
* 进程是处于运行过程中的程序,并具有一定独立功能
*
* 线程:
* 线程是进程中的一个执行单元,负责当前进程中程序的执行
* 一个进程至少有一个线程,一个进程可以有多个线程
*
* 线程的运行模式:
* a、分时调度
* 所有线程 轮流使用 CPU的使用特权,平均分配每个线程占用CPU 的时间
*
* b、抢占式调度
* 优先让 优先级高的线程使用CPU, 如果线程的优先级相同,那么就随机选择一个(线程的随机性)
* java使用抢占式调度
*
* 对于CPU的一个核而言,某个时刻,只能执行一个线程,
* 多线程程序并不能提高程序的运行速度,但能提高程序运行效率,让CPU的使用率更高
*
* 创建线程的目的:
* 建立程序单独运行的执行路径,让多部分代码实现同时执行。
*
* 创建新执行线程有两种方法:
* a、声明Thread的子类,重写run方法。创建对象,开启线程。run相当于其他线程中的main方法
* b、声明Runnable接口的实现类,实现run方法。
*
* public class Thread implements Runnable {...}
*
* public interface Runnable {
* public abstract void run();
* }
*
* 为什么调用Thread的start方法 而不是直接调用 run方法
* run方法不开启线程,只是调用对象的方法
* start开启线程,并让JVM调用run方法在开启的线程中执行
*
*
*
*/
//Thread子类创建线程
MyThread th1 = new MyThread();
th1.setName("线程名字");//修改名字要在start之前,一般不需要修改
th1.start();
th1.getName();
//Runnable接口的方式
//一般用这种方式,将执行的任务分离出来
Thread th3 = new Thread(new MyRunnable());
th3.start();
//currentThread 当前执行的线程
System.out.println(Thread.currentThread().getName());
//使用匿名内部类,实现多线程
//方式一:继承
//方式二:实现接口
new Thread() {
public void run() {
System.out.println("lalalala");
}
}.start();
new Thread(new Runnable() {
public void run() {
System.out.println("hahaha");
}
}).start();
for(int i=0; i<5; i++) {
//sleep 休眠多少毫秒
Thread.sleep(1000);
System.out.println(i);
}
}
}
package cn.sasa.demo1;
public class MyThread extends Thread{
public void run() {
System.out.println(getName());
for(int i=0;i<60;i++) {
System.out.println("thread1-----run"+i);
}
}
// public MyThread() {
// super("线程的名字1");
// }
}
package cn.sasa.demo1;
public class MyRunnable implements Runnable{
@Override
public void run() {
for(int i = 0; i<60; i++) {
System.out.println("runnable......"+i);
}
}
}
java 线程 (一) Thread的更多相关文章
- 初识java线程(Thread)
<1>.概念问题 线程的状态:1.NEW : 没有start的线程 2.RUNNING :可运行线程,可能正在执行,也可能正在等待操作系统中的其他资源,比如cpu时间片 3.BlOCKED ...
- java线程(上)Thread和Runnable的区别
首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程. 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈 ...
- JAVA 线程学习 - Thread了解
public class ThreadKnow { private TimeThread timeThread; private boolean flag; public ThreadKnow() { ...
- Java线程与多线程教程
本文由 ImportNew - liken 翻译自 Journaldev. Java线程是执行某些任务的轻量级进程.Java通过Thread类提供多线程支持,应用可以创建并发执行的多个线程. 应用 ...
- (Java学习笔记) Java Threading (Java线程)
Java Threading (Java线程) ● Process & Thread Processes are the abstraction of running programs: A ...
- java线程面试
1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成 ...
- 了解Java线程优先级,更要知道对应操作系统的优先级,不然会踩坑
Java 多线程系列第 6 篇. 这篇我们来看看 Java 线程的优先级. Java 线程优先级 Thread 类中,使用如下属性来代表优先级. private int priority; 我们可以通 ...
- Java线程之创建线程
翻译自:https://www.journaldev.com/1016/java-thread-example 进程 进程是一个自包含的执行环境,它可以被看成一个程序或应用程序.然而一个应用程序本身包 ...
- Java线程知识
概念 线程生命周期 Java线程模型 线程方法 线程优先级 线程同步 线程在多任务处理应用程序中有着至关重要的作用 概念 基本概念 进程:在操作系统中每个独立运行的程序就是一个进程 线程:程序执行的一 ...
随机推荐
- dhcp server 移植记录
这次移植 WIFI ,需要做成 AP 模式,所以,需要移植 dhcp 服务端 busybox 里面自带 udhcpd 选项. 打开buildroot , make busybox-menuconfig ...
- excel 2007 无法输入中文
解决方法: 1.32位系统:找到C:\Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller,将这个文 ...
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法 关于dubbo服务的 ...
- 【Dubbo 源码解析】01_Dubbo 设计简介
Dubbo 设计简介 Dubbo 采用 Microkernel + Plugin (微内核 + 插件)模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的 ...
- linux(centos) 添加系统环境变量
系统环境变量,其实就就是一个添加至系统环境中的路径变量. 编译php的扩展时经常会在扩展包源码目录里执行phpize,每次执行的时候都要敲入一大堆目录,诸如:/usr/local/php/bin/ph ...
- 解决Android SDK Manager无法更新下载
Android Studio2.2版本有一个bug,当在gradle文件编写代码时,程序会自动同步编译,这时整个程序都处于页面卡顿状态,要等待很久才能缓过来.最近实在忍受不了这种龟速,刚好发现有了新的 ...
- python 闭包用法
def make_addr(addend): def addr(augend): return augend + addend return addr p = make_addr(23) q = ma ...
- phpcms v9 的表单向导功能的使用方法 附多个案例
本文主要介绍phpcms v9的表单向导功能是如何使用的,并副多个案例讲解: 先介绍一下v9 的表单向导如何使用 表单向导做的很实用,生成一个表单,常用的是把它作为一个留言板,或者在招聘栏目作为一个供 ...
- ERP项目实施记录06
自上月20以后,因厂里赶货,办公室人员有空也要去车间帮手,ERP的事就没动静了. 2014年1月10日开了个小组会议,认为第三方不是专业做本行业的,开发风险大:因此希望先开发一个报价软件试试. 明天第 ...
- Javascript合并表格相同内容单元格示例
效果图: HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...