1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.issue;
15
16 import ch.qos.logback.core.contention.ThreadedThroughputCalculator;
17 import ch.qos.logback.core.issue.SelectiveLockRunnable.LockingModel;
18
19
20
21
22
23
24
25 public class NoLockThroughput {
26
27 static int THREAD_COUNT = 3;
28 static long OVERALL_DURATION_IN_MILLIS = 2000;
29
30 public static void main(String args[]) throws InterruptedException {
31
32 ThreadedThroughputCalculator tp = new ThreadedThroughputCalculator(OVERALL_DURATION_IN_MILLIS);
33 tp.printEnvironmentInfo("NoLockThroughput");
34
35 for (int i = 0; i < 2; i++) {
36 tp.execute(buildArray(LockingModel.NOLOCK));
37 }
38
39 tp.execute(buildArray(LockingModel.NOLOCK));
40 tp.printThroughput("No lock: ", true);
41 }
42
43 static SelectiveLockRunnable[] buildArray(LockingModel model) {
44 SelectiveLockRunnable[] array = new SelectiveLockRunnable[THREAD_COUNT];
45 for (int i = 0; i < THREAD_COUNT; i++) {
46 array[i] = new SelectiveLockRunnable(model);
47 }
48 return array;
49 }
50
51 }