java二期_JAVA基础之多线程二期
一、主线程
public class MainThread {
/**
* 主线程:指执行main()方法的线程,且该线程是单线程,从上到下执行
* JVM执行main()方法时,JVM会将main()方法放入到栈内存中执行,
* 同时CPU会为main()方法开辟一条执行路径,该路径名称就是主线程
*
* @param args
*/
public static void main(String[] args) {
Persion p1 = new Persion("小强");
p1.run();
Persion p2 = new Persion("秦问天");
p2.run();
}
}
二、创建线程的两个方式
方式1:继承Thread类
步骤:
A、继承Thread类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把 run()方法称为线程执行体。
B、创建Thred子类实现,既是创建线程对象
C、线程对象调用start()方法来开启线程
测试:
public class Demo2 {
public static void main(String[] args) {
MyThread my = new MyThread("秦问天");
my.start();
for (int i = 1; i <= 20; i++) {
System.out.println("main()....."+i);
}
}
}
自定义线程类:
public class MyThread extends Thread {
private String name;
public MyThread() {}
public MyThread(String name) {
this.name = name;
}
@Override
public void run() {
for (int i = 1; i <= 20; i++) {
System.out.println(this.name+"......<===>..."+i);
}
}
}
三、Thread类
构造方法:
public Thread() :分配一个新的线程对象。
public Thread(String name) :分配一个指定名字的新的线程对象。
public Thread(Runnable target) :分配一个带有指定目标新的线程对象。
public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字
常用方法:
public String getName() :获取当前线程名称。
public void start() :导致此线程开始执行; Java虚拟机调用此线程的run方法。
public void run() :此线程要执行的任务在此处定义代码。
public static void sleep(long millis) :使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。
public static Thread currentThread() :返回对当前正在执行的线程对象的引用
四、创建线程的方式二
步骤如下:
1. 定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。
2. 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正 的线程对象。
3. 调用线程对象的start()方法来启动线程。
测试:
public class MyRunnable implements Runnable {
private String name;
public MyRunnable(String name) {
this.name = name;
}
public void run() {
for (int i = 1; i <=21; i++) {
System.out.println(Thread.currentThread().getName()+"..<===>.."+i);
}
}
}
public class MyRunableTest {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable("张小凡");
//th对象才是真正的线程对象,叶凡才是真正的线程名
Thread th = new Thread(myRunnable,"叶凡");
th.start();
for (int i = 0; i <=21; i++) {
System.out.println("main().."+i);
}
}
}
java二期_JAVA基础之多线程二期相关推荐
- 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)
黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...
- java 必备_Java基础必备
标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...
- cmd运行java文件_Java基础 前传
微信搜一搜秃然编程 一.关于MS-DOS MS-DOS(微软磁盘操作系统),是美国微软公司提供的磁盘操作系统.在美国微软公司推出Windows1.0.Windows3.0.1995年8月24日推出的操 ...
- java基本命令_java基础篇 快捷键 常见Dos命令等等
(一) 计算机基础介绍 (二) jdk 安装 (三) 环境变量介绍及配置 (四) HelloWorld 实现 一 . 计算机概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算 ...
- java嵌套循环_java基础之嵌套循环
一. for循环双层嵌套 首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环.(外循环控制行数,内循环控制每一行的个数) f ...
- java三板斧_JAVA基础学习 三板斧
JAVA基础学习 -1 三板斧 1. 引子 最近因为工作需要,开始学习JAVA,我之前常用的编程语言是C,C#,C++,基本没有用JAVA,JAVA需要从基础开始学习了. JAVA是从C++优化而来: ...
- java基础线程_Java基础之多线程没那么复杂!
多线程的引入 1.什么是多线程 线程是程序执行的一条路径,一个进程中可以包含多条线程;多线程并发执行可以提高程序的效率 2.进程和线程之间的关系 操作系统可以同时执行多个任务,每个任务就是进程;进程可 ...
- java二期_Java架构师鲁班二期
java 中 wait 和 sleep 方法的不同? 通常会在电话面试中经常被问到的 Java 线程面试问题.最大的不同是在等待时 wait 会释放 锁,而 sleep 一直持有锁.Wait 通常被用 ...
- java银行转账会出现的问题_java基础入门-多线程同步浅析-以银行转账为例子
在说之前先普及一下线程是什么? 线程:说白了就是一个任务片段 进程:是一个具有独立功能的程序关于某个数据集合的一次运行活动,一个进程有一个或者多个线程 线程与进程的本质区别就是有么有数据共享空间,线程 ...
最新文章
- 【前端】react and redux教程学习实践,浅显易懂的实践学习方法。
- mybatis 分页需要的jar包下载_牛逼哄哄的PageHelper分页插件到底牛在哪里?
- Struts2 控制台不打印异常的解决方案
- python是谁维护的_Python 库从开发到维护
- 解决方案和项目的区别_沃尔玛用大数据提高销售额,云计算和大数据技术之间的区别汇总...
- python调用浏览器全屏_javascript、js将页面全屏的方法(兼容多浏览器)
- mysql 初始化_Windows10安装mysql
- 无SSH工具部署网站到火腿云
- 优化案例--改写IN条件为INNER JOIN
- UML(Unified Modeling Language)统一建模语言--类图详解
- 基础知识:Mac上更改“字体”窗口中的字体大小
- MAMP 403 Forbidden You don't have permission to access / on this server.
- Spring实战(开发Web应用)
- 塞规公差带图_孔与轴用量规的公差带图
- python修改快捷键_Pycharm快捷键设置 更换或者增添快捷键 设置字体放大缩小快捷键...
- 苹果手机上运行python_手机上运行Python
- What Is Time-series Data? 什么是时间序列数据?
- java 切面 注解_十、使用注解定义切面
- Bugku旧平台web writeup
- ASEMI-SL1550超低压降肖特基二极管型号
热门文章
- Xml中SelectSingleNode方法中的xpath用法
- solaris下修改 IPMP 配置
- xsl判断节点存在_HashMap1.8之节点删除分析
- unzip 报错error [clas.zip]: missing 1844 bytes in zipfile
- catcti监控linux主机,CentOS7搭建Prometheus 监控Linux主机
- java 数据库连接 释放_java - 数据库连接池耗尽 - Java - 堆栈内存溢出
- java timezone_Java TimeZone setID()方法与示例
- html导航栏点击不能跳转,无法单击导航栏中的链接CSS HTML
- 清空 linux 服务器,Linux服务器清理
- php商品在最少购买,ECSHOP给商品设置最少购买数量的方法