线程(Thread)

1.线程是CPU进行资源调度的最小单位

2.线程是进程实际运行的单位,处理进程中无数的小任务

3.线程共享代码和数据空间

4.一个进程可以并发多个线程,线程之间切换系统开销很小

5.在一个进程中至少有一个主线程

6.除了主线程之外,都可以被叫做子线程

7.子线程之间如果没有限制,所有子线程都是并行

8.线程之间如果没有资源冲突,就各自执行,互不相关。

线程的创建:继承形式

新建线程类,继承于线程Thread:

package com.lan;
public class MyThread extends Thread {
    @Override      //重写父类Thread的run方法
public void run() {
//在重写的run方法中,写要在线程中执行的代码
System.out.println("当前线程是:"+Thread.currentThread().getName());
for (int i = 0; i <10 ; i++) {
System.out.println("thread1-"+i);
try {
Thread.sleep(200); //延时200ms
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.lan;
public class MainClass {
public static void main(String[] args) {
        MyThread myThread = new MyThread();
myThread.setName("thread1:");
myThread.start(); //启动线程
}
} 线程创建:接口形式
新建任务类,实现线程接口:Runnable
package com.lan;
public class MyTask implements Runnable{
@Override
public void run() {
System.out.println("当前线程是"+Thread.currentThread().getName());
for (int i = 0; i <10 ; i++) {
System.out.println(Thread.currentThread().getName()+i);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.lan;
public class MainClass {
public static void main(String[] args) {
       Thread t2 =new Thread(new MyTask(),"t2:");   //创建线程类对象T2
t2.start(); //启动线程
System.out.println("当前线程是:"+Thread.currentThread().getName()); //获取当前main线程,main本身是一个主线程
}
}

Java_多线程的更多相关文章

  1. JAVA_多线程_单例模式

    这篇是入职之后的第二篇了,上一篇我简单介绍了一下LOCK里面的类的方法,感兴趣的话可以去了解一下,以后坚持每周至少会更新一篇关于多线程方面的文章,希望博友们可以一起加油成长. 这篇主要的内容是单例模式 ...

  2. java_多线程4种实现方式

    为了34月份回学校春招,不得不复习一下线程的四种实现方式,希望春招时能找到更好的公司,加油! 1.继承Thread类 class MyThread extends Thread{ private in ...

  3. 【Java_多线程并发编程】JUC原子类——原子类中的volatile变量和CAS函数

    JUC中的原子类是依靠volatile变量和Unsafe类中的CAS函数实现的. 1. volatile变量的特性 内存可见性(当一个线程修改volatile变量的值后,另一个线程就可以实时看到此变量 ...

  4. 【Java_多线程并发编程】基础篇——synchronized关键字

    1. synchronized同步锁的原理 当我们调用某对象的synchronized方法或代码块时,就获取了该对象的同步锁.例如,synchronized(obj)就获取了“obj这个对象”的同步锁 ...

  5. 【Java_多线程并发编程】基础篇—线程状态及实现多线程的两种方式

    1.Java多线程的概念 同一时间段内,位于同一处理器上多个已开启但未执行完毕的线程叫做多线程.他们通过轮寻获得CPU处理时间,从而在宏观上构成一种同时在执行的假象,实质上在任意时刻只有一个线程获得C ...

  6. Java_多线程2_线程池

    线程池(pool): 线程池的作用: 1.节省资源,减少线程的数量和创建销毁线程的开销2.合理的管理线程的分配 线程池的创建: 1.newCachedThreadPool //优点:很灵活,弹性的线程 ...

  7. 【Java_多线程并发编程】JUC原子类——AtomicLong原子类

    1. AtomicLong是基本原子类中的一种 AtomicLong是对长整形进行原子操作. 1.1 AtomicLong类的函数列表 // 构造函数 AtomicLong() // 创建值为init ...

  8. 【Java_多线程并发编程】JUC原子类——4种原子类

    根据修改的数据类型,可以将JUC包中的原子操作类可以分为4种,分别是: 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: Atom ...

  9. 【Java_多线程并发编程】基础篇——线程状态扭转函数

    1. wait() sleep() yield() join()用法与区别 本文提到的当前线程是指:当前时刻,获得CPU资源正在执行的线程. 1.1 wait()方法 wait()方法定义在Objec ...

随机推荐

  1. SQLServer性能优化之---水平分库扩展

      汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 第一次引入文件组的概念:http://www.cnblogs.com/dunitia ...

  2. 事务传播性、隔离性与MVCC

    一.事务传播性 1.1 什么是事务的传播性 事务的传播性一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务 ...

  3. Homestead window10 storage:link 不能建立符号链接的处理办法

    重启电脑 1. 以管理员身份运行 cmd 2. vagrant up 3. vagrant ssh 4. php artisan storage:link

  4. abp AutoMap Custom Mapping

    [DependsOn(typeof(AbpAutoMapperModule))] public class MyModule : AbpModule { public override void Pr ...

  5. Linux下删除文件系统空间不释放的问题

    删除了Linux下的一个文件,但是系统空间并没有被释放. 如下:/home/hadmin/data/hadoop 使用了1.3T的空间,但是实际只使用了600多G 原因是我删除了一个600多G的文件, ...

  6. web应用安全权威指南(文摘)

    第1章 什么是web应用的安全隐患 第3章 Web安全基础,HTTP,会话管理,同源策略 content_length 字节数 content_type mime类型 百分号编码 referer :请 ...

  7. pom.xml的继承、聚合与依赖

    原文地址:https://my.oschina.net/zh119893/blog/232896 6.1     简介 pom.xml文件是Maven进行工作的主要配置文件.在这个文件中我们可以配置M ...

  8. Oracle学习笔记(一)

    用户与表空间 系统用户: 一.系统用户级别sys.system 最高级(sys级别高于system)sysman 操作企业管理器使用的scott 创始人之一的名字scott默认密码是tiger登录方法 ...

  9. linux每天一小步---xargs命令详解

    1 命令功能 xargs用来从标准输入中执行命令行 xargs命令用来将一些不支持管道传递参数的命令而使之支持 2 命令语法 xargs  [选项参数] commands 3 命令参数 -O 当标准输 ...

  10. Java 高级基础——反射

    Java 高级基础--反射 反射的意义:Java 强类型语言,但是我们在运行时有了解.修改信息的需求,包括类信息.成员信息以及数组信息. 基本类型与引用类型 基本类型,(固定的 8 种) 整数:byt ...