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的更多相关文章

  1. 初识java线程(Thread)

    <1>.概念问题 线程的状态:1.NEW : 没有start的线程 2.RUNNING :可运行线程,可能正在执行,也可能正在等待操作系统中的其他资源,比如cpu时间片 3.BlOCKED ...

  2. java线程(上)Thread和Runnable的区别

    首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程. 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈 ...

  3. JAVA 线程学习 - Thread了解

    public class ThreadKnow { private TimeThread timeThread; private boolean flag; public ThreadKnow() { ...

  4. Java线程与多线程教程

    本文由 ImportNew - liken 翻译自 Journaldev.   Java线程是执行某些任务的轻量级进程.Java通过Thread类提供多线程支持,应用可以创建并发执行的多个线程. 应用 ...

  5. (Java学习笔记) Java Threading (Java线程)

    Java Threading (Java线程) ● Process & Thread Processes are the abstraction of running programs: A ...

  6. java线程面试

    1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成 ...

  7. 了解Java线程优先级,更要知道对应操作系统的优先级,不然会踩坑

    Java 多线程系列第 6 篇. 这篇我们来看看 Java 线程的优先级. Java 线程优先级 Thread 类中,使用如下属性来代表优先级. private int priority; 我们可以通 ...

  8. Java线程之创建线程

    翻译自:https://www.journaldev.com/1016/java-thread-example 进程 进程是一个自包含的执行环境,它可以被看成一个程序或应用程序.然而一个应用程序本身包 ...

  9. Java线程知识

    概念 线程生命周期 Java线程模型 线程方法 线程优先级 线程同步 线程在多任务处理应用程序中有着至关重要的作用 概念 基本概念 进程:在操作系统中每个独立运行的程序就是一个进程 线程:程序执行的一 ...

随机推荐

  1. ubuntu之视频转换(Avconv的使用)

    1.安装 sudo apt-get install ffmpeg libav-tools 2.基本操作 avconv [options] [[infile options] -i infile] [[ ...

  2. 占位 Bootstrap

    中文网  http://www.bootcss.com/

  3. 爱快路由计费系统easyradius隆重发布,支持V2版本,欢迎大家测试使用

    随着PA.BV接口的发布的临近,我们已经对ROS及爱快V2接口进行大量的升级工作 经用户测试,各方便已满足用户需求. 其实很早以前我们就有支持爱快路由的打算,但是由于各方便原因,通讯接口做好了,但是并 ...

  4. 工具链接redis

    RedisDesktopManager 链接 文件位置 /usr/loca/redis/etc/redis.conf 一.注释redis.conf文件中的:bind 127.0.0.1(在一段文字之前 ...

  5. [IR] Advanced XML Compression - XBW

    思考:与ISX对比后能得出什么结论 原理解析: We proposed the XBW-transform that mimics on trees the nice structural prope ...

  6. 【Dubbo 源码解析】01_Dubbo 设计简介

    Dubbo 设计简介 Dubbo 采用 Microkernel + Plugin (微内核 + 插件)模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的 ...

  7. Elasticsearch学习之配置小记

    基于 elasticsearch 1.4.4 版本.安装方式为RPM安装.所有涉及路径需根据实际情况来设置判断. 0x01 内存调整 调整ES内存分配有多种方式,建议调整 /etc/sysconfig ...

  8. ssh如何连接vmware的centos 6虚拟机

    先安装虚拟机,我使用的是WMware 11.1.3 build-3206955+Centos7 其中出现一个问题是,我需要在虚拟机上安装软件,需要上网,虚拟机有几种网络连接方式: 暂时了解的是,“仅主 ...

  9. ftp如何使用命令上传文件

    本地上传到服务器的步骤如下: 1."开始"-"运行"-输入"FTP" 2.open qint.ithot.net 这一步可以与第一步合并,在 ...

  10. linux 下实用软件工具推荐

    截图:Deepin-Screenshot 音乐:deepin-music netease-music 绘图工具:Draw.io Desktop (chrome extension) / www.pro ...