多线程-线程创建

el/2024/2/26 0:39:23

1.继承Thread类实现多线程

    run()为线程类的核心方法,相当于主线程的main方法,是每个线程的入口:
    a.一个线程调用 两次start()方法将会抛出线程状态异常,也就是的start()只可以被调用一次
    b. run()方法是由jvm创建完本地操作系统级线程后回调的方法,不可以手动调用(否则就是普通方法)

2.覆写Runnable()接口实现多线程,而后同样覆写run().推荐此方式

    a.覆写Runnable接口实现多线程可以避免单继承局限
    b.当子类实现Runnable接口,此时子类和Thread的代理模式(子类负责真是业务的操作,thread负责资源调度与线程创建辅助真实业务。

public class MyThread implements Runnable{public static int count=20;public void run() {while(count>0) {try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"-当前剩余票数:"+count--);}}public static void main(String[] args) {MyThread Thread1=new MyThread();Thread mThread1=new Thread(Thread1,"线程1");Thread mThread2=new Thread(Thread1,"线程2");Thread mThread3=new Thread(Thread1,"线程3");mThread1.start();mThread2.start();myThread3.start();}
}


 


http://www.ngui.cc/el/4893758.html

相关文章

多线程-线程命名及设置优先级

线程命名: 线程设置优先级:

多线程-线程礼让

yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可…

多线程-临界资源(临界区)问题

临界区 表示一种公共资源或共享数据,可以被多个线程使用。但是每一次只能有一个线程使用它。一旦临界区资源被占用,想使用该资源的其他线程必须等待。 class TickerCenter{// 描述剩余的票的数量public static int restCount = 100; } 上述程序的运行结果 运行结果分析: 线…

Spring学习之在eclipse中使用maven创建springMVC项目

一、在eclipse中创建maven-archetype-webapp项目: 1.1. 新建项目选择maven项目 image 1.2. 默认,下一步 image 1.3. 选择maven-archetype-webapp,其他保持默认即可 image 1.4. 如下填写完成后,点击完成即可 image 1.5. 创建完成后的mave…

ssm项目中request获取请求json格式的数据

request.getParameter只能请求一些key value的数据,如果前端请求了如下截图中的post数据json格式,该如何接收呢? image.png 通常情况下request传输这种json数据是通过InputStream流的方式,所以可以通过request.getInputStream() 获取流再转成String 字符串再转成com.alibaba…

ubuntu 以管理员权限打开文件夹+端口查询

此操作适合于文件夹有小锁,在root文件夹下操作等。 ubuntu 以管理员权限打开文件夹: 1,右键->在终端打开 2, 在终端中直接输入sudo nautilus 3,想干嘛干嘛,可以删除,查看等。 lsof -i:8080: …

mybatis的4种分页方式

一.数组分页 原理:进行数据库查询操作时,获取到数据库中所有满足条件的记录,保存在应用的临时数组中,再通过List的subList方法,获取到满足条件的所有记录。 二.借助Sql语句进行分页 在了解到通过数组分页的缺陷后&am…

Mybatis 中的延迟加载

1、问题提出 在之前的文章一对多中,当我们有一个用户,他有一百个账户。 (1)在查询用户时,要不要把关联的账户信息查询出来? (2)在查询账户时,要不要把关联的用户信息查询…

Mybatis Executor执行器

Mybatis有三种基本的Executor执行器: 1. SimpleExecutor 2. ReuseExecutor 3. BatchExecutor SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。 ReuseExecutor:执行update或se…

Redis面试问题一

1. 那你能说一下Redis基本数据类型的特性,还有分别的使用场景么? String、Hash、List、Set、SortedSet。 注:本人在面试回答到Redis相关的问题的时候,经常提到BloomFilter(布隆过滤器)这玩意的使用场景是…