sách gpt4 ăn đã đi

Hai phương pháp in chéo trong thực hành đa luồng Java

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 31 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này Thực hành đa luồng Java - hai phương pháp in chéo được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.

Hiệu ứng bắt buộc: Đầu tiên in "printa..." 5 lần, sau đó in "printb..." 5 lần, mỗi lần in cách nhau 1 giây và lặp lại chu kỳ 20 lần.

Cách 1: Sử dụng các phương thức wait() và notificationall().

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
công cộng lớp học dịch vụ của tôi {
  riêng tư bay hơi Boolean cờ = SAI ;
  công cộng đồng bộ vô hiệu máy in() {
  thử {
   trong khi (lá cờ) {
   Chờ đợi();
   }
   ( số nguyên tôi = 0 ; tôi < 5 ; tôi++) {
   hệ thống.out.println( "in ra..." );
   đơn vị thời gian.giây.ngủ( 1 );
   }
   cờ = ĐÚNG VẬY ;
   thông báo cho tất cả();
  } nắm lấy (interruptedexception e) {
   e.printstacktrace();
  }
  }
  công cộng đồng bộ vô hiệu inb() {
  thử {
   trong khi (!lá cờ) {
   Chờ đợi();
   }
   ( số nguyên tôi = 0 ; tôi < 5 ; tôi++) {
   hệ thống.out.println( "in b..." );
   đơn vị thời gian.giây.ngủ( 1 );
   }
   cờ = SAI ;
   thông báo cho tất cả();
  } nắm lấy (interruptedexception e) {
   e.printstacktrace();
  }
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
công cộng lớp học sao lưu thực hiện có thể chạy được {
  riêng tư dịch vụ của tôi dịch vụ của tôi;
  công cộng sao lưu(dịch vụ của tôidịch vụ của tôi) {
  siêu ();
  cái này .dịch vụ của tôi = dịch vụ của tôi;
  }
  @ghi đè
  công cộng vô hiệu chạy() {
  dịch vụ của tôi.printa();
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
công cộng lớp học sao lưub thực hiện có thể chạy được {
  riêng tư dịch vụ của tôi dịch vụ của tôi;
  công cộng sao lưub(dịch vụ của tôidịch vụ của tôi) {
  siêu ();
  cái này .dịch vụ của tôi = dịch vụ của tôi;
  }
  @ghi đè
  công cộng vô hiệu chạy() {
  dịch vụ của tôi.printb();
  }
}
?
1
2
3
4
5
6
7
8
9
công cộng lớp học chạy {
  công cộng tĩnh vô hiệu main(chuỗi[] args) {
  dịch vụ của tôi dịch vụ của tôi = mới dịch vụ của tôi();
  ( số nguyên tôi = 0 ; tôi < 20 ; tôi++) {
   mới chủ đề( mới sao lưu(dịch vụ của tôi)).bắt đầu();
   mới chủ đề( mới sao lưub(dịch vụ của tôi)).bắt đầu();
  }
  }
}

Cách 2: Sử dụng các phương thức wait() và signalall().

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
công cộng lớp học dịch vụ của tôi {
  riêng tư khóa khóa = mới khóa tái nhập();
  riêng tư điều kiện điều kiện = lock.newcondition();
  riêng tư Boolean cờ = SAI ;
  công cộng vô hiệu máy in() {
  thử {
   khóa.khóa();
   trong khi (lá cờ) {
   condition.await();
   }
   ( số nguyên tôi = 0 ; tôi < 5 ; tôi++) {
   hệ thống.out.println( "in ra..." );
   đơn vị thời gian.giây.ngủ( 1 );
   }
   cờ = ĐÚNG VẬY ;
   condition.signalall();
  } nắm lấy (interruptedexception e) {
   e.printstacktrace();
  } Cuối cùng {
   khóa.mở khóa();
  }
  }
  công cộng vô hiệu inb() {
  thử {
   khóa.khóa();
   trong khi (!lá cờ) {
   condition.await();
   }
   ( số nguyên tôi = 0 ; tôi < 5 ; tôi++) {
   hệ thống.out.println( "in b..." );
   đơn vị thời gian.giây.ngủ( 1 );
   }
   cờ = SAI ;
   condition.signalall();
  } nắm lấy (interruptedexception e) {
   e.printstacktrace();
  } Cuối cùng {
   khóa.mở khóa();
  }
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
công cộng lớp học sợi chỉ thực hiện có thể chạy được {
  riêng tư dịch vụ của tôi dịch vụ của tôi;
  công cộng threada(dịch vụ của tôidịch vụ của tôi) {
  siêu ();
  cái này .dịch vụ của tôi = dịch vụ của tôi;
  }
  @ghi đè
  công cộng vô hiệu chạy() {
  dịch vụ của tôi.printa();
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
công cộng lớp học sợi chỉb thực hiện có thể chạy được {
  riêng tư dịch vụ của tôi dịch vụ của tôi;
  công cộng threadb(dịch vụ của tôidịch vụ của tôi) {
  siêu ();
  cái này .dịch vụ của tôi = dịch vụ của tôi;
  }
  @ghi đè
  công cộng vô hiệu chạy() {
  dịch vụ của tôi.printb();
  }
}
?
1
2
3
4
5
6
7
8
9
công cộng lớp học chạy {
  công cộng tĩnh vô hiệu main(chuỗi[] args) {
  dịch vụ của tôi dịch vụ của tôi = mới dịch vụ của tôi();
  ( số nguyên tôi = 0 ; tôi < 20 ; tôi++) {
   mới chủ đề( mới threada(dịch vụ của tôi)).bắt đầu();
   mới chủ đề( mới threadb(dịch vụ của tôi)).bắt đầu();
  }
  }
}

Tóm tắt.

Trên đây là toàn bộ nội dung bài viết mong rằng nội dung bài viết có giá trị tham khảo và học tập nhất định cho quá trình học tập, làm việc của mọi người. Nếu bạn muốn biết thêm về nó, vui lòng xem các liên kết liên quan bên dưới.

Liên kết gốc: https://blog.csdn.net/qq_40378034/article/details/86766001.

Cuối cùng, bài viết này về hai phương pháp in chéo trong thực hành đa luồng Java kết thúc ở đây. Nếu bạn muốn biết thêm về hai phương pháp in chéo trong thực hành đa luồng Java, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục. Duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress