1 package com.bytezero.threadexer;
2
3 /**
4 *
5 * 创建多线程的方式二:实现 Runnable接口
6 * 1.创建一个实现了Runnable接口类
7 * 2.实现类去实现Runnable中的抽象方法:run()
8 * 3.创建实现类的对象
9 * 4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
10 * 5.通过Thread类的对象调用start()
11 *
12 * 比较创建线程的两种方式:
13 * 开发中 优先选择实现Runnable接口的方式
14 * 原因:1.实现的方式没有类的单继承的局限性
15 * 2.实现的方式更适合来处理多个线程有共享数据的情况
16 *
17 * 联系:public class Thread implements Runnable
18 * 相同点:两种方式都需要重写 run(),将线程要执行的逻辑声明在run()中
19 *
20 *
21 *
22 * @author Bytezero1·zhenglei! Email:420498246@qq.com
23 * create 2021-10-15 17:21
24 */
25
26 //1.创建一个实现了Runnable接口类
27 class MThread implements Runnable {
28 //2.实现类去实现Runnable中的抽象方法:run()
29
30 @Override
31 public void run() {
32 for (int i = 0; i < 100; i++) {
33 if( i % 2==0){
34 System.out.println(Thread.currentThread().getName()+":"+i);
35 }
36 }
37 }
38 }
39
40 public class RunnableTest {
41 public static void main(String[] args) {
42 //3.创建实现类的对象
43 MThread mThread = new MThread();
44
45 // 4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
46 Thread t1 = new Thread(mThread);
47
48
49 // * 5.通过Thread类的对象调用start():①启动线程 ②调用当前线程的run()-->调用了 R
50 //Runnable类型的target的run()
51 t1.setName("线程一");
52 t1.start();
53
54 //再启动线程1遍历100以内的偶数
55 Thread t2 = new Thread(mThread);
56 t2.setName("线程二");
57 t2.start();
58 }
59 }

...............

Java 多线程------创建多线程的方式二:实现 Runnable接口 + 比较创建线程的两种方式:的更多相关文章

  1. Java之多线程方式二(实现Runnable接口)

    /** * 创建多线程的方式二:实现Runnable接口 * 1. 创建一个实现了Runnable接口的类 * 2. 实现类去实现Runnable中的抽象方法:run() * 3. 创建实现类的对象 ...

  2. 1.java多线程_实现线程的两种方式

    1.java多线程基本知识 1.1.进程介绍 不管是我们开发的应用程序,还是我们运行的其他的应用程序,都需要先把程序安装在本地的硬盘上.然后找到这个程序的启动文件, 启动程序的时候,其实是电脑把当前的 ...

  3. 【java并发】传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  4. Java并发基础01. 传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  5. python 并发编程 多线程 开启线程的两种方式

    一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 二 开启线程的两种方式 第一种 每造一个进程,默认有一个线程,就是 ...

  6. 创建线程的两种方式比较Thread VS Runnable

    1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...

  7. 网络编程:多进程实现TCP服务端并发、互斥锁代码实操、线程理论、创建线程的两种方式、线程的诸多特性、GIL全局解释器锁、验证GIL的存在

    目录 多进程实现TCP服务端并发 互斥锁代码实操 线程理论 创建线程的两种方式 线程的诸多特性 GIL全局解释器锁 验证GIL的存在 GIL与普通互斥锁 python多线程是否有用 死锁现象 多进程实 ...

  8. Java新建线程的两种方式

    Java新建线程有两种方式,一种是通过继承Thread类,一种是实现Runnable接口,下面是新建线程的两种方式. 我们假设有个竞赛,有一个选手A做俯卧撑,一个选手B做仰卧起坐.分别为两个线程: p ...

  9. Python创建进程、线程的两种方式

    代码创建进程和线程的两种方式 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了. "" ...

  10. Python 35 线程(1)线程理论、开启线程的两种方式

    一:线程理论 1 什么是线程 进程其实一个资源单位,而进程内的线程才是cpu上的执行单位 线程其实指的就是代码的执行过程2 为何要用线程   线程vs进程     1. 同一进程下的多个线程共享该进程 ...

随机推荐

  1. Gin 框架之Cookie与Session

    目录 一.Cookie和Session的由来 二.Cookie简介 1. 什么是Cookie 2. Cookie规范 3. 安全性 4. Cookie 关键配置 三.Session简介 1. 什么是S ...

  2. 解决pycharm编辑超大超大项目时CPU占用100%

    在编辑py文件时,cpu占用100%其实和内存的关系不大,因为这个现象是间歇性的,不是持续的. 我试过给pycharm分配16GB的内存,也是一样没有缓解CPU占用高. 项目和pycharam也都是存 ...

  3. Win32汇编:汇编版PE结构解析器

    PE格式是Windows系统下最常用的可执行文件格式,有些应用必须建立在了解PE文件格式的基础之上,如可执行文件的加密与解密,文件型病毒的查杀等,熟练掌握PE文件结构,有助于软件的分析. 在PE文件中 ...

  4. 麒麟系统升级openssh至9.5p1

    当前环境: 升级openssh需要三个包zlib-1.2.13.tar.gz.openssl-1.1.1t.tar.gz.openssh-9.5p1.tar.gz 下载地址: zlib-1.2.13. ...

  5. 多路转接高性能IO服务器|select|poll|epoll|模型详细实现

    前言 那么这里博主先安利一下一些干货满满的专栏啦! Linux专栏https://blog.csdn.net/yu_cblog/category_11786077.html?spm=1001.2014 ...

  6. 教你用JavaScript实现鼠标特效

    案例介绍 欢迎来的我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个鼠标爱心特效.鼠标在页面移动时会出现彩色爱心特效.通过实战我们将学会createEl ...

  7. 记录一则ADG备库报错ORA-29771的案例

    有客户找到我这边咨询,说他们的一套核心ADG库在业务高峰期报错,因为业务做了读写分离,其备库也实际承担读业务,所以备库故障也会对业务产生影响. 这里也要提醒大家,做读写分离,如果读库出现故障的情况,要 ...

  8. 12c/19c新特性官方文档快速参考

    工作中会经常遇到被询问Oracle某一个新特性,是在哪个版本开始引入,通常都去查官方文档New Features部分章节,下面列出从12.1.0.1 到 19c的对应在线官方文档的链接,方便快速检索: ...

  9. Hive-beeline连接报错:root is not allowed to impersonate root (state=08S01,code=0)

    问题描述 使用hive/bin目录下的hive启动客户端,使用!connect jdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密 ...

  10. Postgresql-数据库无法停止,报错:pg_ctl server does not shut down

    根据您的查询,pg_ctl server does not shut down(pg_ctl服务无法关闭)的原因可能有很多.以下是一些可能的解决方案和代码示例: (1)杀死所有与PostgreSQL相 ...