inside multi-threading

89
inside multi-threading Laurent Esnault, Vice President of Engineering

Upload: kmiyako

Post on 13-Apr-2017

171 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Inside Multi-Threading

inside multi-threadingLaurent Esnault, Vice President of Engineering

Page 2: Inside Multi-Threading
Page 3: Inside Multi-Threading
Page 4: Inside Multi-Threading

•-

Page 5: Inside Multi-Threading

•-

Page 6: Inside Multi-Threading

•-

••

Page 7: Inside Multi-Threading

•-

••

Page 8: Inside Multi-Threading

•-

••

Page 9: Inside Multi-Threading

•-

••

••

Page 10: Inside Multi-Threading

•-

••

•••

Page 11: Inside Multi-Threading
Page 12: Inside Multi-Threading
Page 13: Inside Multi-Threading
Page 14: Inside Multi-Threading
Page 15: Inside Multi-Threading
Page 16: Inside Multi-Threading
Page 17: Inside Multi-Threading
Page 18: Inside Multi-Threading
Page 19: Inside Multi-Threading

Page 20: Inside Multi-Threading

••

Page 21: Inside Multi-Threading

•••

Page 22: Inside Multi-Threading
Page 23: Inside Multi-Threading

BE PREPARED NOT SCARED

Page 24: Inside Multi-Threading

BE PREPARED NOT SCARED

•••

Page 25: Inside Multi-Threading

BE PREPARED NOT SCARED

•••

Page 26: Inside Multi-Threading

BE PREPARED NOT SCARED

•••

Page 27: Inside Multi-Threading
Page 28: Inside Multi-Threading
Page 29: Inside Multi-Threading
Page 30: Inside Multi-Threading
Page 31: Inside Multi-Threading

Page 32: Inside Multi-Threading

••

Page 33: Inside Multi-Threading

•••

Page 34: Inside Multi-Threading

•••

Page 35: Inside Multi-Threading

•••

Page 36: Inside Multi-Threading

•••

••

Page 37: Inside Multi-Threading
Page 38: Inside Multi-Threading
Page 39: Inside Multi-Threading

BE PREPARED NOT SCARED

•••••

Page 40: Inside Multi-Threading

BE PREPARED NOT SCARED

•••••

Page 41: Inside Multi-Threading
Page 42: Inside Multi-Threading

<>myVar:=<>myVar+1

Page 43: Inside Multi-Threading

<>myVar:=<>myVar+1IDLE

IDLE

Page 44: Inside Multi-Threading

<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1IDLE

IDLE

Page 45: Inside Multi-Threading

<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1IDLEIDLE IDLE

Page 46: Inside Multi-Threading

<>myVar:=<>myVar+1CLEAR SEMAPHORE("myVar")

If(Not(Semaphore("myVar";1000)))

End if

Page 47: Inside Multi-Threading
Page 48: Inside Multi-Threading
Page 49: Inside Multi-Threading

Page 50: Inside Multi-Threading

••

Page 51: Inside Multi-Threading

•••---

Page 52: Inside Multi-Threading

myWorker

myWorker

Page 53: Inside Multi-Threading

myWorkerCALL WORKER("myWorker";"myMethod";$param)

myWorker

Page 54: Inside Multi-Threading

myWorkerCALL WORKER("myWorker";"myMethod";$param)

myWorker

Page 55: Inside Multi-Threading

myWorkerCALL WORKER("myWorker";"myMethod";$param)

myWorker

you’ve got mail!

Page 56: Inside Multi-Threading

myWorker

myWorker

CALL WORKER("myWorker"; "myMethod";$param)

Page 57: Inside Multi-Threading

myWorker

myWorker

CALL WORKER("myWorker"; "myMethod";$param)

Page 58: Inside Multi-Threading

myWorker

myWorker

myMethod($param)

CALL WORKER("myWorker"; "myMethod";$param)

Page 59: Inside Multi-Threading

myWorker

myWorker

CALL WORKER("myWorker"; "myMethod";$param)

Page 60: Inside Multi-Threading
Page 61: Inside Multi-Threading

BE PREPARED NOT SCARED

•••••

Page 62: Inside Multi-Threading

BE PREPARED NOT SCARED

•••••

Page 63: Inside Multi-Threading
Page 64: Inside Multi-Threading
Page 65: Inside Multi-Threading

Page 66: Inside Multi-Threading

••

Page 67: Inside Multi-Threading

•••---

Page 68: Inside Multi-Threading

myWindow

myWindow

Page 69: Inside Multi-Threading

myWindowCALL FORM($myWindow;"myMethod";$param)

myWindow

Page 70: Inside Multi-Threading

myWindowCALL FORM($myWindow;"myMethod";$param)

myWindow

Page 71: Inside Multi-Threading

myWindowCALL FORM($myWindow;"myMethod";$param)

myWindow

you’ve got mail!

Page 72: Inside Multi-Threading

myWindowCALL FORM($myWindow; "myMethod";$param)

myWindow

Page 73: Inside Multi-Threading

myWindowCALL FORM($myWindow; "myMethod";$param)

myWindow

Page 74: Inside Multi-Threading

myWindowCALL FORM($myWindow; "myMethod";$param)

myWindow

myMethod($param)

Page 75: Inside Multi-Threading

myWindowCALL FORM($myWindow; "myMethod";$param)

myWindow

Page 76: Inside Multi-Threading
Page 77: Inside Multi-Threading
Page 78: Inside Multi-Threading

Windows

Mac

Page 79: Inside Multi-Threading

v12

Windows

Mac

Page 80: Inside Multi-Threading

v12

Windows

Mac

v13

OD BC

Page 81: Inside Multi-Threading

v12

Windows

Mac

v13

OD BC

v15

OD BC

Page 82: Inside Multi-Threading

v12 v15 Rx

Windows

Mac

v13

OD BC

v15

OD BC

Page 83: Inside Multi-Threading

v12 v15 Rx v15 R5

Windows

Mac

v13

OD BC

v15

OD BC

Page 84: Inside Multi-Threading

v12 v15 Rx v15 R5 v16

Windows

Mac

v13

OD BC

v15

OD BC

Page 85: Inside Multi-Threading
Page 86: Inside Multi-Threading
Page 87: Inside Multi-Threading

Page 88: Inside Multi-Threading

Page 89: Inside Multi-Threading