一、线程的创建

方式一:继承Thread类,重写run()方法

package com.imooc.thread1;

class MyThread extends Thread{
public MyThread(String name) {
super(name);
}
public void run() {
for(int i=1;i<=10;i++) {
System.out.println(getName()+"正在运行~~"+i);
}
}
}
public class ThreadTest1 { public static void main(String[] args) {
MyThread mt1=new MyThread("线程1");
MyThread mt2=new MyThread("线程2");
mt1.start();
mt2.start();
}
}

2、通过实现Runnable接口创建线程

package com.imooc.thread3;

class PrintRunnable implements Runnable{

    @Override
public void run() {
// 重写接口的run()方法
int i=1;
while(i<=10) {
System.out.println(Thread.currentThread().getName()+"正在运行!"+(i++));
} } } public class Test { public static void main(String[] args) {
// 通过实现Runnable接口创建线程
//1.实例化Runnable接口的实现类
PrintRunnable pr=new PrintRunnable();
//2.创建线程对象
Thread t1=new Thread(pr);
//3.启动线程
t1.start();
PrintRunnable pr2=new PrintRunnable();
//2.创建线程对象
Thread t2=new Thread(pr2);
//3.启动线程
t2.start();
} }

3、多个线程共享资源

package com.imooc.thread3;

class PrintRunnable implements Runnable{
int i=1;
@Override
public void run() {
// 重写接口的run()方法 while(i<=10) {
System.out.println(Thread.currentThread().getName()+"正在运行!"+(i++));
} } } public class Test { public static void main(String[] args) {
// 通过实现Runnable接口创建线程
//1.实例化Runnable接口的实现类
PrintRunnable pr=new PrintRunnable();
//2.创建线程对象,参数为同一个对象,多个线程共享对象资源
Thread t1=new Thread(pr);
Thread t2=new Thread(pr);
//3.启动线程
t1.start();
t2.start();
} }

Java常用工具——java多线程的更多相关文章

  1. Java常用工具——java字符串

    一.String常用字符串 package com.imooc.string; public class StringDemo { public static void main(String[] a ...

  2. Java常用工具——java集合

    一.ArrayList package com.imooc.set; import java.util.ArrayList; import java.util.List; public class A ...

  3. Java常用工具——java异常

    package com.imooc.exception; import java.util.Scanner; public class TryCatchDemo1 { public static vo ...

  4. Java常用工具——java包装类

    一.包装类和基本数据类型 装箱:基本数据类型——包装类 拆箱:包装类——基本数据类型 package com.imooc.wrap; public class WrapTestOne { public ...

  5. JavaEE-实验一 Java常用工具类编程

    该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1.  使用类String类的分割split 将字符串  “Solutions to selected exercises ca ...

  6. Java常用工具+类库合集

    1 常用工具 JVisual vm:可以直接通过软件包下载,支持本地以及远程JVM监控 JMH:Java Microbenchmark Harness,测试基准组件,精度可达纳秒级 JITWatch: ...

  7. Java常用工具类题库

    一.    填空题 在Java中每个Java基本类型在java.lang包中都在一个相应的包装类,把基本类型数据转换为对象,其中包装类Integer是___Number__的直接子类. 包装类Inte ...

  8. JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...

  9. JAVA常用工具类汇总

    一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...

随机推荐

  1. 前端表格选中列合计,select-chosen,set集合,display隐藏

    业务涉及到table选中列合计,同时隐藏未选中列.为了减少后端请求数据,前端获得所有数据后筛选计算. 1.select下拉框初始化 $(function() { $('.chosen-select') ...

  2. [Markdown] 04 进阶语法 第二弹

    [TOC] 接上一篇 [Mardkown] 03 进阶语法 第一弹 8. LaTeX 8.1 相关介绍 TeX:学术排版 LaTeX:相当于 TeX 的简化版本:对公式编辑精细至像素级别 MathJa ...

  3. [随笔重写] Python3 的深拷贝与浅拷贝

    1. Python3 关于深浅拷贝的官方文档 文档地址:Python3.7.2 源码地址:lib/copy.py 2. 先说结论 深拷贝与浅拷贝是对复合对象而言的 深拷贝会构造一个新的复合对象,然后递 ...

  4. ES6新数据类型Symbol

    Symbol 需计算字面量属性时使用 const benz = Symbol('benz'); const car = { [benz]: 'benz car' }; const info = Sym ...

  5. C/C++二维数组名和二级指针

    转载 :https://blog.csdn.net/wu_nan_nan/article/details/51741030  作者:吴一奇 1. 指针1.1 一个指针包含两方面:a) 地址值:b) 所 ...

  6. Feign负载均衡

    Feign是一个声明式的Web Service客户端,比Ribbon好用,默认也是轮巡.我们只需要使用Feign创建一个接口,并用注解就好了.如果你基于spring cloud发布一个接口,实际上就是 ...

  7. C# xml格式字符串,插入到数据库出现非法字符

    在debug模式下快速监视看到的数据是完全正常的,即取到的是<xml>,但是把该字符串拷贝到UltraEdit中,取到的第一个字符是问号.使用正则表达式^[^<]进行替换,意思是把开 ...

  8. Maven将jar包放入本地库

    转自:https://blog.csdn.net/qq_33314107/article/details/73549256 这是由于Oracle授权问题,Maven3不提供Oracle JDBC dr ...

  9. There is no Action mapped for namespace [/] and action name [TestAction] ass

    1.修改action的name值 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE strut ...

  10. 怎样group by一列 select多列

    之前sql用的少 竟然不知道这个小技巧 1 将要查询的列 添加到group by后面(会影响查询结果) 2 使用聚合函数如 max select a.accounttitlecode, max(b.c ...