文章

对线面试官 今天来聊聊多线程基础

多线程基础面试漫画对话01

多线程基础面试漫画对话02

多线程基础面试漫画对话03

多线程基础面试漫画对话04

多线程基础面试漫画对话05

多线程基础面试漫画对话06

1
2
3
4
5
6
7
8
9
10
// 请求直接交给线程池来处理
public void push(PushParam pushParam) {
    try {
        pushServiceThreadExecutor.submit(() -> {
            handler(pushParam);
        });
    } catch (Exception e) {
        logger.error("pushServiceThreadExecutor error, exception:", e);
    }
}

多线程基础面试漫画对话07

多线程基础面试漫画对话08

1
2
3
4
5
6
7
8
9
10
11
12
13
public class UnsafeCountingServlet extends GenericServlet implements Servlet {
    private long count = 0;

    public long getCount() {
        return count;
    }

    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

        ++count;
        // To something else...
    }
}

多线程基础面试漫画对话09

多线程基础面试漫画对话10

多线程基础面试漫画对话11

多线程基础面试漫画对话12

多线程基础面试漫画对话13

多线程基础面试漫画对话14

文章以纯面试的角度去讲解,所以有很多的细节是未铺垫的。

文章中写到的处理线程安全的思路每一项技术都可以写出一篇文章,AQS、Synchronized、Atomic…周末肝起来!下周再来给大家安排!

本文由作者按照 CC BY 4.0 进行授权