一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java多線程ForkJoinPool實例詳解

Java多線程ForkJoinPool實例詳解

2021-01-11 14:03tianshi_kco Java教程

這篇文章主要介紹了Java多線程ForkJoinPool實例詳解,涉及forkjoin框架的相關內容,需要的朋友可以參考下。

引言

java 7提供了另外一個很有用的線程池框架,Fork/Join框架

理論

Fork/Join框架主要有以下兩個類組成.

* ForkJoinPool 這個類實現了ExecutorService接口和工作竊取算法(Work-Stealing Algorithm).它管理工作者線程,并提供任務的狀態信息,以及任務的執行信息

* ForkJoinTask 這個類是一個將在ForkJoinPool執行的任務的基類.

Fork/Join框架提供了在一個任務里執行fork()和join()操作的機制和控制任務狀態的方法.通常,為了實現Fork/Join任務,需要實現一個以下兩個類之一的子類

* RecursiveAction 用于任務沒有返回值的場景

* RecursiveTask 用于任務有返回值的場景.

例子 先定個小目標,1億就太多,先賺個一百萬吧

現在你是一個深圳片區的某公司高級銷售主管.現在定了一個目標,就是要賺個一百,讓你一個人去賺,肯定有難度的.好在有一般手下,把目標縮小,讓小弟們去賺,我們坐等拿錢.ok,開始編程

首先我們要定義個賺錢任務 MakeMoneyTask,如果要賺錢的目標小于最小目標,比如十萬,那么就自己去完成,否則,就把任務分給小弟們去做.

?
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class MakeMoneyTask extends RecursiveTask<Integer>{
  private static final int MIN_GOAL_MONEY = 100000;
  private int goalMoney;
  private String name;
  private static final AtomicLong employeeNo = new AtomicLong();
  public MakeMoneyTask(int goalMoney){
    this.goalMoney = goalMoney;
    this.name = "員工" + employeeNo.getAndIncrement() + "號";
  }
  @Override
  protected Integer compute() {
    if (this.goalMoney < MIN_GOAL_MONEY){
      System.out.println(name + ": 老板交代了,要賺 " + goalMoney + " 元,為了買車買房,加油吧....");
      return makeMoney();
    }else{
      int subThreadCount = ThreadLocalRandom.current().nextInt(10) + 2;
      System.out.println(name + ": 上級要我賺 " + goalMoney + ", 有點小多,沒事讓我" + subThreadCount + "個手下去完成吧," +
          "每人賺個 " + Math.ceil(goalMoney * 1.0 / subThreadCount) + "元應該沒問題...");
      List<MakeMoneyTask> tasks = new ArrayList<>();
      for (int i = 0; i < subThreadCount; i ++){
        tasks.add(new MakeMoneyTask(goalMoney / subThreadCount));
      }
      Collection<MakeMoneyTask> makeMoneyTasks = invokeAll(tasks);
      int sum = 0;
      for (MakeMoneyTask moneyTask : makeMoneyTasks){
        try {
          sum += moneyTask.get();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      System.out.println(name + ": 嗯,不錯,效率還可以,終于賺到 " + sum + "元,趕緊邀功去....");
      return sum;
    }
  }
  private Integer makeMoney(){
    int sum = 0;
    int day = 1;
    try {
      while (true){
        Thread.sleep(ThreadLocalRandom.current().nextInt(500));
        int money = ThreadLocalRandom.current().nextInt(MIN_GOAL_MONEY / 3);
        System.out.println(name + ": 在第 " + (day ++) + " 天賺了" + money);
        sum += money;
        if (sum >= goalMoney){
          System.out.println(name + ": 終于賺到 " + sum + " 元, 可以交差了...");
          break;
        }
      }
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    return sum;
  }
}

最后我們寫一個測試類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestMain {
  public static void main(String[] args) throws ExecutionException, InterruptedException {
    ForkJoinPool pool = new ForkJoinPool();
    ForkJoinTask<Integer> task = pool.submit(new MakeMoneyTask(1000000));
    do {
      try {
        TimeUnit.MILLISECONDS.sleep(5);
      }catch (InterruptedException e){
        e.printStackTrace();
      }
    }while (!task.isDone());
    pool.shutdown();
    System.out.println(task.get());
  }
}

運作之后結果如下:

?
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
員工0號: 上級要我賺 1000000, 有點小多,沒事讓我10個手下去完成吧,每人賺個 100000.0元應該沒問題…
員工1號: 上級要我賺 100000, 有點小多,沒事讓我7個手下去完成吧,每人賺個 14286.0元應該沒問題…
員工11號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工10號: 上級要我賺 100000, 有點小多,沒事讓我5個手下去完成吧,每人賺個 20000.0元應該沒問題…
員工18號: 老板交代了,要賺 20000 元,為了買車買房,加油吧….
員工9號: 上級要我賺 100000, 有點小多,沒事讓我3個手下去完成吧,每人賺個 33334.0元應該沒問題…
員工23號: 老板交代了,要賺 33333 元,為了買車買房,加油吧….
員工22號: 老板交代了,要賺 20000 元,為了買車買房,加油吧….
員工22號: 在第 1 天賺了31432
員工22號: 終于賺到 31432 元, 可以交差了…
員工21號: 老板交代了,要賺 20000 元,為了買車買房,加油吧….
員工18號: 在第 1 天賺了32005
員工18號: 終于賺到 32005 元, 可以交差了…
員工19號: 老板交代了,要賺 20000 元,為了買車買房,加油吧….
員工23號: 在第 1 天賺了6166
員工21號: 在第 1 天賺了15433
員工19號: 在第 1 天賺了23419
員工19號: 終于賺到 23419 元, 可以交差了…
員工20號: 老板交代了,要賺 20000 元,為了買車買房,加油吧….
員工20號: 在第 1 天賺了10376
員工11號: 在第 1 天賺了11808
員工21號: 在第 2 天賺了31059
員工21號: 終于賺到 46492 元, 可以交差了…
員工8號: 上級要我賺 100000, 有點小多,沒事讓我4個手下去完成吧,每人賺個 25000.0元應該沒問題…
員工26號: 老板交代了,要賺 25000 元,為了買車買房,加油吧….
員工11號: 在第 2 天賺了11902
員工11號: 終于賺到 23710 元, 可以交差了…
員工12號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工23號: 在第 2 天賺了9077
員工20號: 在第 2 天賺了30386
員工20號: 終于賺到 40762 元, 可以交差了…
員工10號: 嗯,不錯,效率還可以,終于賺到 174110元,趕緊邀功去….
員工7號: 上級要我賺 100000, 有點小多,沒事讓我10個手下去完成吧,每人賺個 10000.0元應該沒問題…
員工30號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工12號: 在第 1 天賺了31271
員工12號: 終于賺到 31271 元, 可以交差了…
員工26號: 在第 1 天賺了11631
員工13號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工26號: 在第 2 天賺了10160
員工30號: 在第 1 天賺了10786
員工30號: 終于賺到 10786 元, 可以交差了…
員工31號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工31號: 在第 1 天賺了15201
員工31號: 終于賺到 15201 元, 可以交差了…
員工32號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工26號: 在第 3 天賺了32642
員工26號: 終于賺到 54433 元, 可以交差了…
員工27號: 老板交代了,要賺 25000 元,為了買車買房,加油吧….
員工23號: 在第 3 天賺了33072
員工23號: 終于賺到 48315 元, 可以交差了…
員工24號: 老板交代了,要賺 33333 元,為了買車買房,加油吧….
員工24號: 在第 1 天賺了26309
員工24號: 在第 2 天賺了15420
員工24號: 終于賺到 41729 元, 可以交差了…
員工25號: 老板交代了,要賺 33333 元,為了買車買房,加油吧….
員工13號: 在第 1 天賺了33266
員工13號: 終于賺到 33266 元, 可以交差了…
員工14號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工25號: 在第 1 天賺了19270
員工25號: 在第 2 天賺了15842
員工25號: 終于賺到 35112 元, 可以交差了…
員工9號: 嗯,不錯,效率還可以,終于賺到 125156元,趕緊邀功去….
員工6號: 上級要我賺 100000, 有點小多,沒事讓我9個手下去完成吧,每人賺個 11112.0元應該沒問題…
員工40號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工32號: 在第 1 天賺了8133
員工32號: 在第 2 天賺了3518
員工32號: 終于賺到 11651 元, 可以交差了…
員工33號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工27號: 在第 1 天賺了23200
員工14號: 在第 1 天賺了6366
員工27號: 在第 2 天賺了10406
員工27號: 終于賺到 33606 元, 可以交差了…
員工28號: 老板交代了,要賺 25000 元,為了買車買房,加油吧….
員工40號: 在第 1 天賺了28078
員工40號: 終于賺到 28078 元, 可以交差了…
員工41號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工41號: 在第 1 天賺了12996
員工41號: 終于賺到 12996 元, 可以交差了…
員工42號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工33號: 在第 1 天賺了29188
員工33號: 終于賺到 29188 元, 可以交差了…
員工34號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工14號: 在第 2 天賺了17712
員工14號: 終于賺到 24078 元, 可以交差了…
員工15號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工28號: 在第 1 天賺了18623
員工28號: 在第 2 天賺了8205
員工28號: 終于賺到 26828 元, 可以交差了…
員工29號: 老板交代了,要賺 25000 元,為了買車買房,加油吧….
員工34號: 在第 1 天賺了30779
員工34號: 終于賺到 30779 元, 可以交差了…
員工35號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工42號: 在第 1 天賺了26164
員工42號: 終于賺到 26164 元, 可以交差了…
員工43號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工43號: 在第 1 天賺了2995
員工29號: 在第 1 天賺了347
員工15號: 在第 1 天賺了33056
員工15號: 終于賺到 33056 元, 可以交差了…
員工16號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工35號: 在第 1 天賺了3639
員工29號: 在第 2 天賺了22909
員工43號: 在第 2 天賺了2289
員工16號: 在第 1 天賺了27836
員工16號: 終于賺到 27836 元, 可以交差了…
員工17號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工43號: 在第 3 天賺了694
員工17號: 在第 1 天賺了16361
員工17號: 終于賺到 16361 元, 可以交差了…
員工1號: 嗯,不錯,效率還可以,終于賺到 189578元,趕緊邀功去….
員工2號: 上級要我賺 100000, 有點小多,沒事讓我2個手下去完成吧,每人賺個 50000.0元應該沒問題…
員工49號: 老板交代了,要賺 50000 元,為了買車買房,加油吧….
員工49號: 在第 1 天賺了8599
員工43號: 在第 4 天賺了10008
員工43號: 終于賺到 15986 元, 可以交差了…
員工44號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工29號: 在第 3 天賺了31298
員工29號: 終于賺到 54554 元, 可以交差了…
員工8號: 嗯,不錯,效率還可以,終于賺到 169421元,趕緊邀功去….
員工39號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工49號: 在第 2 天賺了8099
員工35號: 在第 2 天賺了164
員工49號: 在第 3 天賺了5518
員工49號: 在第 4 天賺了22441
員工44號: 在第 1 天賺了6091
員工39號: 在第 1 天賺了18813
員工39號: 終于賺到 18813 元, 可以交差了…
員工48號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工44號: 在第 2 天賺了22324
員工44號: 終于賺到 28415 元, 可以交差了…
員工45號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工49號: 在第 5 天賺了28438
員工49號: 終于賺到 73095 元, 可以交差了…
員工50號: 老板交代了,要賺 50000 元,為了買車買房,加油吧….
員工35號: 在第 3 天賺了31797
員工35號: 終于賺到 35600 元, 可以交差了…
員工36號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工50號: 在第 1 天賺了18071
員工45號: 在第 1 天賺了22528
員工45號: 終于賺到 22528 元, 可以交差了…
員工46號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工36號: 在第 1 天賺了26828
員工36號: 終于賺到 26828 元, 可以交差了…
員工37號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工50號: 在第 2 天賺了32422
員工50號: 終于賺到 50493 元, 可以交差了…
員工2號: 嗯,不錯,效率還可以,終于賺到 123588元,趕緊邀功去….
員工3號: 上級要我賺 100000, 有點小多,沒事讓我9個手下去完成吧,每人賺個 11112.0元應該沒問題…
員工51號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工46號: 在第 1 天賺了1537
員工46號: 在第 2 天賺了27529
員工46號: 終于賺到 29066 元, 可以交差了…
員工47號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工48號: 在第 1 天賺了24791
員工48號: 終于賺到 24791 元, 可以交差了…
員工38號: 老板交代了,要賺 10000 元,為了買車買房,加油吧….
員工37號: 在第 1 天賺了17587
員工37號: 終于賺到 17587 元, 可以交差了…
員工47號: 在第 1 天賺了23693
員工47號: 終于賺到 23693 元, 可以交差了…
員工6號: 嗯,不錯,效率還可以,終于賺到 211717元,趕緊邀功去….
員工5號: 上級要我賺 100000, 有點小多,沒事讓我7個手下去完成吧,每人賺個 14286.0元應該沒問題…
員工60號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工51號: 在第 1 天賺了27189
員工51號: 終于賺到 27189 元, 可以交差了…
員工52號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工38號: 在第 1 天賺了32285
員工38號: 終于賺到 32285 元, 可以交差了…
員工66號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工7號: 嗯,不錯,效率還可以,終于賺到 228718元,趕緊邀功去….
員工65號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工65號: 在第 1 天賺了26122
員工65號: 終于賺到 26122 元, 可以交差了…
員工64號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工52號: 在第 1 天賺了19239
員工52號: 終于賺到 19239 元, 可以交差了…
員工53號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工60號: 在第 1 天賺了10433
員工66號: 在第 1 天賺了25993
員工66號: 終于賺到 25993 元, 可以交差了…
員工63號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工60號: 在第 2 天賺了19529
員工60號: 終于賺到 29962 元, 可以交差了…
員工61號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工64號: 在第 1 天賺了6894
員工53號: 在第 1 天賺了13114
員工53號: 終于賺到 13114 元, 可以交差了…
員工54號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工54號: 在第 1 天賺了8237
員工61號: 在第 1 天賺了15878
員工61號: 終于賺到 15878 元, 可以交差了…
員工62號: 老板交代了,要賺 14285 元,為了買車買房,加油吧….
員工63號: 在第 1 天賺了32108
員工63號: 終于賺到 32108 元, 可以交差了…
員工4號: 上級要我賺 100000, 有點小多,沒事讓我9個手下去完成吧,每人賺個 11112.0元應該沒問題…
員工67號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工64號: 在第 2 天賺了30531
員工64號: 終于賺到 37425 元, 可以交差了…
員工75號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工54號: 在第 2 天賺了13562
員工54號: 終于賺到 21799 元, 可以交差了…
員工55號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工55號: 在第 1 天賺了17774
員工55號: 終于賺到 17774 元, 可以交差了…
員工56號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工67號: 在第 1 天賺了24463
員工67號: 終于賺到 24463 元, 可以交差了…
員工68號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工56號: 在第 1 天賺了1677
員工62號: 在第 1 天賺了14266
員工75號: 在第 1 天賺了26532
員工75號: 終于賺到 26532 元, 可以交差了…
員工74號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工68號: 在第 1 天賺了32639
員工68號: 終于賺到 32639 元, 可以交差了…
員工69號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工69號: 在第 1 天賺了9513
員工56號: 在第 2 天賺了9154
員工56號: 在第 3 天賺了289
員工56號: 終于賺到 11120 元, 可以交差了…
員工57號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工62號: 在第 2 天賺了17321
員工62號: 終于賺到 31587 元, 可以交差了…
員工5號: 嗯,不錯,效率還可以,終于賺到 199075元,趕緊邀功去….
員工59號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工69號: 在第 2 天賺了17971
員工69號: 終于賺到 27484 元, 可以交差了…
員工70號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工74號: 在第 1 天賺了26270
員工74號: 終于賺到 26270 元, 可以交差了…
員工73號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工70號: 在第 1 天賺了21237
員工70號: 終于賺到 21237 元, 可以交差了…
員工71號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工59號: 在第 1 天賺了4411
員工57號: 在第 1 天賺了3546
員工57號: 在第 2 天賺了29330
員工57號: 終于賺到 32876 元, 可以交差了…
員工58號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工73號: 在第 1 天賺了10674
員工71號: 在第 1 天賺了8821
員工59號: 在第 2 天賺了11887
員工59號: 終于賺到 16298 元, 可以交差了…
員工72號: 老板交代了,要賺 11111 元,為了買車買房,加油吧….
員工58號: 在第 1 天賺了28241
員工58號: 終于賺到 28241 元, 可以交差了…
員工3號: 嗯,不錯,效率還可以,終于賺到 187650元,趕緊邀功去….
員工72號: 在第 1 天賺了14371
員工72號: 終于賺到 14371 元, 可以交差了…
員工73號: 在第 2 天賺了14918
員工73號: 終于賺到 25592 元, 可以交差了…
員工71號: 在第 2 天賺了28814
員工71號: 終于賺到 37635 元, 可以交差了…
員工4號: 嗯,不錯,效率還可以,終于賺到 236223元,趕緊邀功去….
員工0號: 嗯,不錯,效率還可以,終于賺到 1845236元,趕緊邀功去….
1845236

看到沒有,員工0號把任務一百萬直接分給了10個手下去做,每個手下有繼續往下分,最終在七十幾號人的努力下,終于完成了目標–一百萬.而且還超出八十多萬,老板一開心,直接把八十多萬分給這七十多個員工分紅了.

后記

通過上面這個例子的學習,相信應該很多人都可以掌握ForkJoinPool這個類,它的核心就是要完成某一個目標任務,如果目標任務太大,那么就創建多個子任務.然后一直等待這些子任務完成.最終完成之前定下的目標任務.

總結

以上就是本文關于Java多線程ForkJoinPool實例詳解的全部內容,希望對大家有所幫助。歡迎各位參閱本站其他專題,有什么問題可以隨時留言,小編會及時回復大家的。

原文鏈接:http://blog.csdn.net/tianshi_kco/article/details/53026192#comments

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: jm漫天堂破解版 | 五月天精品视频在线观看 | 久久久精品免费视频 | 亚洲第一色区 | 欧美摘花破处 | 69人成网站色www | 九九成人免费视频 | 四缺一小说 | 王晶经典三级 | 午夜秀场在线观看 | 精品久久洲久久久久护士免费 | 精品一区二区三区在线播放 | 国产精品视频2020 | 无人在线观看免费高清视频播放 | 91麻豆精品国产自产在线 | 网红刘婷hd国产高清 | 国产偷窥女洗浴在线观看亚洲 | 97色蜜桃 | 网友偷自拍原创区 | 久久99国产视频 | 91国内精品 | 大胆人gogo888体艺术在线 | 女教师系列三上悠亚在线观看 | 九九精品视频在线观看 | 国产精品久热 | 国产香蕉在线视频 | 日韩在线观看网址 | 天海翼黄色三级 | 欧美日韩精品亚洲精品v18 | 国产伦精品一区二区三区免费观看 | 我被黑人彻底征服的全文 | 国产精品久久毛片蜜月 | 免费人成在线观看 | 男同志gays| 视频免费 | 男人插女人软件 | 操大爷影院 | 亚洲天堂视频在线观看免费 | 国产精品视频一区二区三区经 | 国产精品欧美韩国日本久久 | 国产51社区精品视频资源 |