2024年Java最新Java之多线程,25岁成功入职阿里P7的小哥哥告诉你

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取




     匿名Runnbale类 如果只使用一次 可以使用匿名内部类在Thread里



public class MyThread {

public static void main(String[] args) {

    MyThread1 myThread1 = new MyThread1();

    Thread thread = new Thread(myThread1);

    thread.start();

}

}




‘    3.实现Callable接口 关于实现Callable暂时不讲 



2、获取线程和修改线程名称

=============



          获取线程ID和线程名称



          1.在Thread的子类调用this.getId()或this.getName()来获取ID和线程名称 但是这种方式缺点是:必须要继承Thread才能调用



          2.使用Thread.currenThread().getId和Thread.currenThread().getName()来获取ID和名称  推荐使用这种方式 不用继承Thread 直接可以使用



         修改线程名称



         1.调用线程队形的setName()方法



         2.使用线程子类构造方法赋值



public class MyThread {

public static void main(String[] args) {

    Thread thread = new Thread("我的线程1");

    thread.setName("我的线程1");

}

}




3、抢占式调度

=======



      Java是抢占式调度 当多个线程执行的时候 每个线程都会去抢占CPU 而CPU会把时间平均分给每个线程时间(时间片) 当线程的时间片使用完后 又把CPU使用还回去 又给其他线程执行



4、Thread常见方法



常见方法



\*休眠:



public static void sleep(long millis) 休眠程序 1000毫秒 == 1秒



\*放弃



public static void yield()



当前线程主动放弃时间片 回到就绪状态 竞争下一次时间片



\*加入:



public final void join()



允许其他线程加入到当前线程中



\*优先级



线程对象.setPriority()



线程优先级1-10 默认为5 优先级越高 表示获取CPU机会越多



\*守护线程



线程对象setDaemon(true)设置为守护线程



线程有两类:用户线程(前台线程)、守护线程(后台线程)



如果程序中所有前台线程都执行完毕了 后台线程会自动结束



垃圾回收器线程属于守护线程



5、同步线程

======



为什么要同步?



当多个线程执行一个类的时候 当线程抢到cpu执行 还没运行完 就被其他线程抢走了 这样多个线程对一个类的时候 数据会不统一 所以多个线程必须同步 使用synchronized



同步方式(1)



同步代码块:(把当前线程执行后 才可以解锁 执行其他线程)



Synchronized(临界资源对象){ //对临界资源对象加锁



//代码(原子操作)



}



public class MyThread1 implements Runnable{

@Override

public void run() {

    synchronized (this){

        for (int i = 0; i < 10; i++) {

            System.out.println(i);

        }

    }

}

}




# 最后

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。

所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。

![](https://img-blog.csdnimg.cn/img_convert/7c8398b971c3101b2ee9206e5417f97a.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。

[外链图片转存中...(img-5ibvgObi-1714913372481)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值