李光明从程序员到架构师的逆袭之路(一)

简介: 我叫李光明,今年20岁,从事计算机软件开发。今年初春,我踏上了前往上海的列车,心情既激动又忐忑。这是我第一次来到这座繁华的都市,这里的高楼大厦、车水马龙都让我感受到了这座城市的活力和魅力。然而,更让我期待的是,这里将是我职业生涯的新起点。

我叫李光明,今年20岁,从事计算机软件开发。今年初春,我踏上了前往上海的列车,心情既激动又忐忑。这是我第一次来到这座繁华的都市,这里的高楼大厦、车水马龙都让我感受到了这座城市的活力和魅力。然而,更让我期待的是,这里将是我职业生涯的新起点。

抵达上海后不久,我决定独自前往一场招聘会寻找机会。由于对上海的道路并不熟悉,我差点在前往招聘会的路上迷路了。幸好,我遇到了一个热心的路人,他给我指明了方向。在寻找招聘会的路上,我偶然遇到了一位同行,他手里拿着一本《JVM实战》正在专注地阅读。我们互相交流了对技术的理解和热爱,这让我对即将开始的职业生涯更加期待。


重磅!!!最新阿里云340本殿堂级内部课程资料“揭秘”流出,进阶必备!!!


在前往招聘会的地铁上,我无意间听到了旁边几个人正在讨论如何使用Executors来创建线程池。这个话题立刻引起了我的兴趣。Executors是一个Java中的工具类,它提供了多种静态工厂方法用于创建线程池,这些方法返回的线程池都实现了ExecutorService接口。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的ThreadFactory创建一个新线程。通过 Executors 类提供的静态工厂方法,我们可以方便地创建不同类型的线程池,如单线程的 Executors.newSingleThreadExecutor(),固定大小的线程池 Executors.newFixedThreadPool(int),以及可缓存的线程池 Executors.newCachedThreadPool()。

Executors 是 Java 并发库中的一个工具类,它提供了几种创建线程池的方法,简化了线程池的创建过程。以下是一个简单的使用 Executors 创建固定大小的线程池并执行任务的示例代码:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ExecutorsDemo {
   
    public static void main(String[] args) {
   
        // 创建一个固定大小的线程池,最多同时执行3个线程
        ExecutorService executor = Executors.newFixedThreadPool(3);

        // 提交10个任务给线程池执行
        for (int i = 0; i < 10; i++) {
   
            Runnable task = () -> System.out.println("Executing task " + Thread.currentThread().getName());
            executor.submit(task);
        }

        // 关闭线程池,不再接受新任务,等待已提交的任务执行完成
        executor.shutdown();
    }
}

Executors` 类中的核心方法主要包括以下几种:

  1. newFixedThreadPool(int nThreads): 创建一个固定大小的线程池,最多可以同时执行 nThreads 个线程。如果所有线程都在工作,新提交的任务将在队列中等待,直到有线程可用。

  2. newCachedThreadPool(): 创建一个可根据需要创建新线程的线程池,但在闲置时会回收线程。这种方式适用于执行大量异步任务的场景,可以灵活扩展和收缩线程池的大小。

  3. newSingleThreadExecutor(): 创建一个单线程的线程池,它只会使用一个工作线程来执行任务,保证所有任务按照提交的顺序(FIFO)执行。

  4. newScheduledThreadPool(int corePoolSize): 创建一个支持定时和周期性任务执行的线程池。这个线程池允许你安排任务在将来的某个时间执行,或者定期执行。

  5. newWorkStealingPool(int parallelism): 创建一个拥有多个线程的线程池,这些线程会尝试“窃取”其他线程的工作,以提高多核处理器上的吞吐量。这是Java 8中引入的一种新型线程池。

这些方法都返回了一个 ExecutorService 对象,你可以使用这个对象来提交任务(RunnableCallable 对象)并管理线程池的状态。注意,当你不再需要使用线程池时,应该调用其 shutdown() 方法来优雅地关闭它,以确保所有已提交的任务都能完成执行。

听着他们的讨论,我不由得陷入了沉思。来到上海这个陌生的城市,我原本感到有些迷茫和不安,但此刻,在地铁上,我感受到了一种前所未有的振奋。这里汇聚了来自全国各地的优秀人才,每个人都在努力追求自己的梦想。看着地铁上来去匆匆的人群,我对未来的工作充满了希望。

招聘会结束后,我收获了许多有用的信息和潜在的工作机会。在接下来的日子里,我投身于技术的学习和实践中,努力提升自己的能力。随着时间的推移,我不仅熟悉了更多的编程语言和框架,还对系统架构有了更深入的理解。

几年后,我成功地从一名程序员进阶为一名架构师。每当回想起那个初春的上海之行,我都会感到无比的庆幸和感激。正是那次经历,让我看到了自己的潜力和未来的方向,也让我更加坚定地走在技术的道路上。如今,我已经能够熟练地设计和构建复杂的软件系统,为公司的业务发展提供强有力的技术支持。而这一切,都源于那次充满希望和激情的上海之行。


2、“论层次式架构在系统中的应用”必过范文,突击2024软考高项论文

3、“论软件系统架构评估”必过范文,突击2024软考高项论文

4、“论SOA在企业集成架构设计中的应用”必过范文,突击2024软考高项论文

5、“论软件的可靠性评价”必过范文,突击2024软考高项论文

6、“论软件系统建模方法”必过范文,突击2024软考高项论文


招聘会结束后,我收获了许多有用的信息和潜在的工作机会。在接下来的日子里,我投身于技术的学习和实践中,努力提升自己的能力。随着时间的推移,我不仅熟悉了更多的编程语言和框架,还对系统架构有了更深入的理解。

几年后,我成功地从一名程序员进阶为一名架构师。每当回想起那个初春的上海之行,我都会感到无比的庆幸和感激。正是那次经历,让我看到了自己的潜力和未来的方向,也让我更加坚定地走在技术的道路上。如今,我已经能够熟练地设计和构建复杂的软件系统,为公司的业务发展提供强有力的技术支持。而这一切,都源于那次充满希望和激情的上海之行。

相关文章
|
2月前
|
架构师 安全 程序员
为什么大部分 PHP 程序员做不了架构师?
【10月更文挑战第23天】本文分析了PHP程序员向架构师转型时面临的挑战,包括语言特性限制认知范围、缺乏分布式系统经验、性能优化深度不足、安全意识和安全架构能力不足,以及对其他技术栈的融合能力有限等问题。这些问题限制了PHP程序员在系统设计和架构领域的全面发展。
|
6月前
|
设计模式 小程序 程序员
程序员的自我修养 - 架构主题简思
对架构主题的简思汇总,可以作为日常思考主题,是程序的自我修养。
|
6月前
|
架构师 Java 中间件
程序员,如何从开发转型做架构师?
程序员,如何从开发转型做架构师?
|
架构师 安全 Java
年薪120W的架构师简历你见过吗?java程序员该如何达到?
第一个问题是,“大多数Java开发人员都在哪里,我们中有多少人?”我们回答了这个问题,把我们能得到的最准确的信息结合起来,然后推断出我们认为是一个受过良好教育的猜测。
|
开发框架 架构师 Java
Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档
Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起时,还未得到普及使用。相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。本书就是本着提高开发效率,增强.系统性能,促进新技术的普及使用这一目的而写的。
|
架构师 程序员
硅谷技术总监用300小时带你从程序员直接成为架构师,真不是盖的
前言 相信,有许多小伙伴已经做了程序员一两年或者三年了,甚至有些已经快五年了,但是还没有迈进架构师这个门,不知道如何成为架构师。 程序员之间的能力差异在哪里?如果是学技术,大家可以阅读同样的书籍和网络文章,为什么还会造成最终专业能力的差异?我认为有三点。
|
7月前
|
数据管理 程序员 人工智能
后台数据管理系统 - 项目架构设计【黑马程序员】
后台数据管理系统 - 项目架构设计【黑马程序员】
264 0
后台数据管理系统 - 项目架构设计【黑马程序员】
|
7月前
|
程序员 数据安全/隐私保护
架构人生,体魄同行:程序员的健康密码解析
架构人生,体魄同行:程序员的健康密码解析
106 0
|
7月前
|
安全 数据挖掘 程序员
程序员必读 | 《业务架构解构与实践》
程序员必读 | 《业务架构解构与实践》
586 0
|
7月前
|
开发框架 架构师 Java
Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档
Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起时,还未得到普及使用。