并发编程笔记一:老铁,你为什么要了解并发

内容多有疏漏,有问题欢迎提出

目录

  1. 串行和并行的区别;
  2. 阻塞和非阻塞的区别;
  3. 并发;
  4. 总结;

一、串行和并行的区别

串行就是按照顺序依次把事情做完,并行是同时做多个事情,在java编程的角度来讲,并行就体现在多线程的使用上。

串行举例:

public class SynchronizationTest {
    public static void main(String[] args) {
        long cur = System.currentTimeMillis();
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 100000; j++) {
                System.out.println("Hello World");
            }
        }
        System.out.println(System.currentTimeMillis() - cur);
    }
}

并行举例:

public class AsynchronizationTest {
    public static void main(String[] args) throws InterruptedException {
        long cur = System.currentTimeMillis();
        AsynchronizationTest test = new AsynchronizationTest();
        MyThread thread0 = test.new MyThread();
        MyThread thread1 = test.new MyThread();
        MyThread thread2 = test.new MyThread();
        thread0.start();
        thread1.start();
        thread2.start();
        thread0.join();
        thread1.join();
        thread2.join();

        System.out.println(System.currentTimeMillis() - cur);
    }

    class MyThread extends Thread {
        @Override
        public void run() {
            for (int j = 0; j < 100000; j++) {
                System.out.println("Hello World");
            }
        }
    }
}

二、阻塞和非阻塞的区别

扫描二维码关注公众号,回复: 8560184 查看本文章

阻塞,就是某一线程占着资源不释放,知道它处理完成通知下一线程可以使用资源了,才可以向下执行。

非阻塞,就是某一线程执行过程中,另一线程也来访问这个资源,发现资源已经被占用了,于是立即返回去找其他资源。

举个例子,A要煮开书,起初他用普通烧水壶,烧水的过程中,他看一会儿电视,就去看一下谁有没有煮开,这就是阻塞的方式。后来A换了新家伙,买到了一个烧好水之后会叫并且会自动断电的电水壶,这样A就可以一边烧水一边安心的看电视,不用去观察水是否煮开,等到想用开水的时候去用就可以了,这就是非阻塞的方式。

三、并发

在单CPU的情况下,并发是指多个线程在一个CPU中来回切换执行,本质上还是串行执行,现在的机器大部分都是多个CPU,每个CPU可以单独处理线程任务,这样也就做到了真正的并发处理。

并发

并发的好处:

并发,顾名思义,就是多件事情同时去做,在讲求效率的当下,并发能极大地提高做事情的效率。

并发的缺点:

1、并发编程中任务之间的切换可能带来性能上额外的开销;

2、并发编程难以控制,就如同人一边开车一边看美女,很容易就因为分心撞到路边;

四、总结

但是整体来讲,并发带来的效率提升远远超过它本身的难以控制,并发编程我们可以对它进行深入的了解,从而避免编程中遇到的坑。

这就需要我们从源头对并发得基础知识有深入的了解,下面一章,我们将从java的内存模型(JMM)开始讲起

发布了60 篇原创文章 · 获赞 57 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qixinbruce/article/details/86501539