实现线程的两种方式

  • 实现Runnable接口如果当前类 不仅要继承其他类( 非Thread类), 还要实现多线程,那么 只能通过当前类实现 Runnable接口创建Thread类对象实现Runnable接口的程序会创建一个Thread对象,并将Runnable接口的对象target作为其运行对象。Thread类的构造方法:构造方法 介绍 public Thread(Runnable target); 创建一个新的 Thread 对象。 public Thread(Runnable target , String name); 创建一个新的 Thread 对象,并指定名字。实现Runnable接口 实例:
import javax.swing.*;
import java.awt.*;

public class Demo1 extends JFrame implements Runnable {
    private JLabel jLabel = new JLabel();
    private int count = 0;
    private Container c = getContentPane();

    public Demo1(){
        setBounds(400,200,250,100);
        c.setLayout(null);
        try{
            Icon icon = new ImageIcon("src/setting.png");
            jLabel.setIcon(icon);
        }catch (NullPointerException e){
            System.out.println("图片不存在");
            return;
        }
        jLabel.setHorizontalAlignment(SwingConstants.LEFT);
        jLabel.setBounds(10,10,200,50);
        jLabel.setOpaque(true);
        c.add(jLabel);
        setVisible(true);
    }

    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
        Thread thread = new Thread(demo1);
        thread.start();
    }

    @Override
    public void run() {
        int i = 10;
        while (true){
            jLabel.setBounds(i,10,200,50);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            i+=5;
            if (i>=200){
                i=10;
            }
        }
    }
}

Original: https://www.cnblogs.com/TeaTracing/p/16124143.html
Author: TeaTracing
Title: 实现线程的两种方式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622481/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springboot~ApplicationContextAware与@Autowired注解

    ApplicationContextAware是一个接口,它提供一个方法setApplicationContext,当spring注册完成之后,会把ApplicationConte…

    数据库 2023年6月6日
    082
  • 排序规则

    一、什么是排序规则 mysql官网的说法 The collation is a set of rules (only one rule in this case): “…

    数据库 2023年5月24日
    0166
  • 【黄啊码】教你用python画冰墩墩

    python;gutter:true; import turtle</p> <p>turtle.title('PythonBingDwenDwen…

    数据库 2023年6月16日
    058
  • MySQL45讲之查询慢或者阻塞

    前言 本文介绍了表锁定和执行速度慢的实例,以及表锁定时的故障排除方法。 [En] This paper introduces examples of table locking a…

    数据库 2023年5月24日
    0112
  • 查看PostgreSQL监听端口

    如何查看PostgreSQL的监听端口呢?下面总结一下查看PostgreSQL监听端口的方法。 方法1:netstat命令查看 或者sudo netstat -plunt |gre…

    数据库 2023年6月11日
    078
  • DASCTF 冰墩墩

    SimpleFlow 一下子就能发现传了一个含有flag.txt的压缩包,需要密码,字典简单跑一下就发现是 <span class=”ne-text”>PaSsZiPW…

    数据库 2023年6月11日
    074
  • 设计模式遵循的设计原则

    一、什么是设计原则? 答:如果说设计模式是编写代码的一种套路,那么设计原则就是用来约束我们使用这种套路应该要遵循的规则,只有遵循了这些规则的设计模式编写出来的应用程序才具有更好的扩…

    数据库 2023年6月14日
    081
  • update更新很慢(字段类型引发)

    开发人员在sql审核平台提交了2000多条update语句,每条语句只更新一条,where条件由索引,在sql审核平台在测试执行阶段已经执行了20多分钟。于是让看一下数据库后台线程…

    数据库 2023年6月16日
    0113
  • pg数据库匹配正则

    select ‘41142619960609331x’ ~ ‘^[1-9]\d{5}\d{4}((0[1-9])|(10|11|12))(([0…

    数据库 2023年6月16日
    087
  • HTTP 协议概述

    什么是 HTTP 协议 什么是协议? 协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。所谓 HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的…

    数据库 2023年6月11日
    071
  • 软件测试基础理论(2)

    一, 为什么要进行软件测试 &#x4E3A;&#x4E86;&#x901A;&#x8FC7;&#x8F6F;&#x4EF6;&amp…

    数据库 2023年6月16日
    087
  • MySQL学习(2)—MySQL数据类型

    ps:此随笔基于mysql 5.7.*版本。 补充: UNSIGNED:所有整数类型都可以有一个可选(非标准)UNSIGNED属性。无符号类型可用于在列中仅允许非负数存在,或者当开…

    数据库 2023年6月14日
    081
  • firewall 命令简单操作

    Firewalld 是维护防火墙策略的守护程序的名称。使用 firewall-cmd 命令与防火墙配置进行交互, 使用区域概念对与系统交互的流量进行分段。网络接口分配给一个或多个区…

    数据库 2023年6月14日
    077
  • MySQL源码分析之SQL函数执行

    1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包含函数的SQL语句,在mysql中会经过: &#x5BA2…

    数据库 2023年5月24日
    099
  • redis启动服务闪退,端口被占用

    1、首先查询一下redis端口的pid,使用命令【netstat -ano | findstr 端口号】redis默认端口号是6379 (注意!如果netstat命令使用不了的话,…

    数据库 2023年6月11日
    0115
  • 谁再说学不会 MySQL 数据库,就把这个给他扔过去!

    大家好,我是民工哥。 又是新的一年奋斗路的开启,相信有不少人农历新年之后,肯定会有所变动(跳槽加薪少不了)。所以,我把往期推送过的MySQL技术文章做了一个相关的整理,基础不好的可…

    数据库 2023年5月24日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球