Java面试必会:多线程编程实例

原创 我不是女神ヾ 2025-03-15 16:42 10阅读 0赞

在Java面试中,多线程编程是一个重要的考察点。以下是一些多线程编程的实例和问题:

  1. 创建和启动线程

    • 使用Thread类创建新线程。
      1. Thread thread = new Thread(new Runnable() {
      2. @Override
      3. public void run() {
      4. // 线程内的代码
      5. }
      6. }));
      7. thread.start();
  2. 同步和互斥

    • 使用synchronized关键字实现线程锁。

      1. class Counter {
      2. private int count;
      3. synchronized void increment() {
      4. count++;
      5. notifyAll(); // 通知其他等待的线程
      6. }
      7. synchronized int getCount() {
      8. return count;
      9. }
      10. }
  3. 递归和异步

    • 使用RunnableCallable实现多任务。
      ```java
      import java.util.concurrent.ExecutorService;
      import java.util.concurrent.Executors;

    class LongRunningTask implements Runnable {

    1. private int counter;
    2. @Override
    3. public void run() {
    4. for (int i = 0; i < 100000; i++) {
    5. // 线程内的长运行任务代码
    6. counter++;
    7. if (counter == 5) { // 当完成5个循环后,停止并返回结果
    8. System.out.println("Finished after 5 iterations");
    9. return;
    10. }
    11. }
    12. }

    }

    ExecutorService executor = Executors.newFixedThreadPool(5);
    for (int i = 0; i < 10; i++) {

    1. executor.submit(new LongRunningTask());

    }
    executor.shutdown();
    ```
    以上实例是多线程编程的基础,面试时可能会根据具体需求进行扩展或深入讨论。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,10人围观)

还没有评论,来说两句吧...

相关阅读