spring|Java程序员必会的三个技能: Spring+MySQL+并发编程


spring|Java程序员必会的三个技能: Spring+MySQL+并发编程
文章图片
spring|Java程序员必会的三个技能: Spring+MySQL+并发编程
文章图片
spring|Java程序员必会的三个技能: Spring+MySQL+并发编程
文章图片
spring|Java程序员必会的三个技能: Spring+MySQL+并发编程
文章图片

并发编程、数据库和Spring , 我认为这个算程序员开发面试的都必须接触到的 。 作为面试的热点及难点 , 一直深受面试官青睐都是离不开的 。 今天就聊一聊一些经典的题目 , 让大家对Spring、MySQL、并发有一定清楚的认知 。 每天看一看 , 开发不困难 。
一、并发编程

另外本人整理了20年面试题大全 , 包含spring、并发、数据库、Redis、分布式、dubbo、JVM、微服务等方面总结 , 下图是部分截图 , 需要的话关注小编后回复关键字“666”免费获取 。
1、Java 中实现多线程有几种方法
(1)继承 Thread 类;
(2)实现 Runnable 接口;
(3)实现 Callable 接口通过 FutureTask 包装器来创建 Thread 线程;
(4)使用 ExecutorService、Callable、Future 实现有返回结果的多线程(也就是使用了 ExecutorService 来管理前面的三种方式) 。
2、如何停止一个正在运行的线程
(1)使用退出标志 , 使线程正常退出 , 也就是当 run 方法完成后线程终止 。
(2)使用 stop 方法强行终止 , 但是不推荐这个方法 , 因为 stop 和 suspend 及 resume 一样都是过期作废的方法 。
(3)使用 interrupt 方法中断线程 。
class MyThread extends Thread {    volatile Boolean stop = false;    public void run() {        while (!stop) {
           System.out.println(getName() + \" is running\");            try {                sleep(1000);                        catch (InterruptedException e) {
               System.out.println(\"week up from blcok...\");
               stop = true;                // 在异常处理代码中修改共享变量的状态                    
       System.out.println(getName() + \" is exiting...\");    class InterruptThreadDemo3 {    public static void main(String[
args) throws InterruptedException {
       MyThread m1 = new MyThread();
       System.out.println(\"Starting thread...\");
       m1.start();
       Thread.sleep(3000);
       m1.interrupt();        // 阻塞时退出阻塞状态
       Thread.sleep(3000);        // 主线程休眠 3 秒以便观察线程 m1 的中断情况