
多线程
只写bug的程序猿!
我为人人,人人为我
展开
-
线程池的五大分类
线程池的分类原创 2022-12-16 10:33:38 · 220 阅读 · 0 评论 -
创建线程的第三种方式,实现Callable接口
实现类:package Callable1;import java.util.concurrent.Callable;public class MyCallable implements Callable<String> { @Override public String call() throws Exception { for (int i = 0; i < 100; i++) { System.out.printl原创 2022-03-29 10:45:28 · 131 阅读 · 0 评论 -
创建线程的三种方式
创建线程的两种方式1.继承java.lang.Thread类编写简单,可直接操作线程适用于单继承2.实现java.lang.Runnable 接口避免单继承局限性便于共享资源推荐使用Runnable 接口方式创建线程继承Thread类实现分别完成自己的任务,无法共享资源实现Runnable接口一个多线程共同完成一个任务,资源共享...原创 2021-12-14 14:29:24 · 136 阅读 · 0 评论 -
线程安全的类型
查看ArrayList类的add()方法定义public boonlean add(E e){ensure Capaitylnternal(size+1);//集合扩容 确保能新增数据element Data [size ++]=e;//在新增位置存放数据return ture;}ArrayList类的add()方法为非同步方法当多个线程向同一个ArrayList对象添加 数据时数据不一致问题ArrayList是非线程安全hashmap和hashtabl...原创 2021-12-18 01:33:14 · 121 阅读 · 0 评论 -
多线程共享数据问题
多线程操作同一资源时将引发数据不安全问题多线程共享数据可能带来的问题:数据不安全原因:多线程共同操作数据时引发的冲突(如 延时操作未全部完成等等);怎样实现线程安全?第一种方法: (同步方法) 方法加锁使用synchronized 修饰符的方法控制类成员变量的访问访问修饰符 synchronized 返回类型 方法名 (参数列表){......}或者:synchronized 访问修饰符 返回类型 方法名 (参数){......}sync...原创 2021-12-16 01:04:37 · 801 阅读 · 0 评论 -
线程调度-------yield()
static void yield() 暂停当前正在执行的线程对象并运行其他线程暂停当前线程允许其他具有相同优先级的线程获得运行机会public Static void yield();线程礼让只是提供一种可能,但是不能保证一定会实现礼让yield() 暂停当前执行的线程对象,并执行其他线程 [ 线程礼让 ]注意区分 join();和yield();yield();礼让 放手 ,当前线程处于就绪状态join();阻塞当前线程 直到其他线程执行...原创 2021-12-16 00:49:06 · 1925 阅读 · 0 评论 -
线程调度------join();强制运行
join()一个线程加入到当前执行的线程里面当前线程停止等待新加入的线程终止原创 2021-12-16 00:20:49 · 566 阅读 · 0 评论 -
实现Runnable接口创建线程
//创建线程:实现Runnable接口public class MyThread implements Runnable { public void run(){ for (int i = 1; i<=100; i++){ System.out.println(Thread.currentThread().getName()+":"+i); } }}测试类//测试线程public class TestThre.原创 2021-12-15 23:48:42 · 339 阅读 · 0 评论 -
线程状态 线程调度 优先级和休眠
线程的五大状态创建线程-------->就绪状态----------->抢占cpu资源--------->运行状态--------->阻塞状态------>死亡状态线程调度 优先级和休眠void set Priority(int new Priority)设置优先级static void sleep(long millis毫秒) 线程休眠void join() 强制运行static void yield()强制终断并执行其他线程void in...原创 2021-12-15 01:03:56 · 240 阅读 · 0 评论 -
继承 Thread类创建线程
//多个线程交替执行,不是真的并行//线程每次执行时长由分配的CPu时长片长度决定 (抢占Cpu)//创建并开启线程public class MyThread extends Thread { public void run(){ for (int i = 1; i<=100; i++){ System.out.println(Thread.currentThread().getName()+":"+i); } }}.原创 2021-12-14 23:55:19 · 701 阅读 · 0 评论 -
线程重新设置名称
//获取和设置主线程(名称)public class MainThread { public static void main(String[] args) { //获取当前的线程对象 Thread thread = Thread.currentThread(); //获取当前线程对象的名称 String name = thread.getName(); System.out.println("当前线程是:"+nam.原创 2021-12-14 01:24:05 · 341 阅读 · 0 评论