1115. 交替打印FooBar

同思路解法:

https://leetcode-cn.com/problems/print-foobar-alternately/solution/liang-ge-xin-hao-liang-jiao-ti-kong-zhi-by-atizose/

新增知识点:

1、Semaphore   https://www.cnblogs.com/klbc/p/9500947.html  Semaphore 是 synchronized 的加强版,作用是控制线程的并发数量。就这一点而言,单纯的synchronized 关键字是实现不了的。

2、启用线程的写法:

public static void main(String[] args) throws InterruptedException {

        FooBar fooBar = new FooBar(3);

        Thread t1 = new Thread(()->{

            try {

                fooBar.foo(()->{

                    System.out.print("foo");

                });

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        });

        Thread t2 = new Thread(()->{

            try {

                fooBar.bar(()->{

                    System.out.print("bar");

                });

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        });

        t2.start();

        t1.start();

    }

作者:atizose

链接:https://leetcode-cn.com/problems/print-foobar-alternately/solution/liang-ge-xin-hao-liang-jiao-ti-kong-zhi-by-atizose/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(1115. 交替打印FooBar)