Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
inside multi-threading
Laurent Esnault, Vice President of Engineering
•
-
•
-
•
•
-
•
•
•
-
•
•
•
-
•
•
•
•
-
•
•
•
•
•
-
•
•
•
•
•
•
•
•
•
•
•
BE
PREPARED
NOT SCARED
BE
PREPARED
NOT SCARED
•
•
•
BE
PREPARED
NOT SCARED
•
•
•
BE
PREPARED
NOT SCARED
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
BE
PREPARED
NOT SCARED
•
•
•
•
•
BE
PREPARED
NOT SCARED
•
•
•
•
•
<>myVar:=<>myVar+1
<>myVar:=<>myVar+1
IDLE
IDLE
<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1
IDLE
IDLE
<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1IDLEIDLE IDLE
<>myVar:=<>myVar+1
CLEAR SEMAPHORE("myVar")
If(Not(Semaphore("myVar";1000)))
End if
•
•
•
•
•
•
-
-
-
myWorker
myWorker
myWorker
CALL WORKER("myWorker";
"myMethod";$param)
myWorker
myWorker
CALL WORKER("myWorker";
"myMethod";$param)
myWorker
myWorker
CALL WORKER("myWorker";
"myMethod";$param)
myWorker
you’ve
got mail!
myWorker
myWorker
CALL WORKER("myWorker";
"myMethod";$param)
myWorker
myWorker
CALL WORKER("myWorker";
"myMethod";$param)
myWorker
myWorker
myMethod($param)
CALL WORKER("myWorker";
"myMethod";$param)
myWorker
myWorker
CALL WORKER("myWorker";
"myMethod";$param)
BE
PREPARED
NOT SCARED
•
•
•
•
•
BE
PREPARED
NOT SCARED
•
•
•
•
•
•
•
•
•
•
•
-
-
-
myWindow
myWindow
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
you’ve
got mail!
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
myMethod($param)
myWindow
CALL FORM($myWindow;
"myMethod";$param)
myWindow
Windows
Mac
v12
Windows
Mac
v12
Windows
Mac
v13
OD
BC
v12
Windows
Mac
v13
OD
BC
v15
OD
BC
v12 v15 Rx
Windows
Mac
v13
OD
BC
v15
OD
BC
v12 v15 Rx v15 R5
Windows
Mac
v13
OD
BC
v15
OD
BC
v12 v15 Rx v15 R5 v16
Windows
Mac
v13
OD
BC
v15
OD
BC
•
•
•
•
•
•
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Inside Multi-Threading
Upcoming SlideShare
Loading in …5
×

Inside Multi-Threading

247 views

Published on

Slides from 4D Developer Conference 2016 in Tokyo

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Inside Multi-Threading

  1. 1. inside multi-threading Laurent Esnault, Vice President of Engineering
  2. 2. • -
  3. 3. • - •
  4. 4. • - • •
  5. 5. • - • •
  6. 6. • - • • •
  7. 7. • - • • • •
  8. 8. • - • • • • •
  9. 9.
  10. 10. • •
  11. 11. • • •
  12. 12. BE PREPARED NOT SCARED
  13. 13. BE PREPARED NOT SCARED • • •
  14. 14. BE PREPARED NOT SCARED • • •
  15. 15. BE PREPARED NOT SCARED • • •
  16. 16.
  17. 17. • •
  18. 18. • • •
  19. 19. • • •
  20. 20. • • • •
  21. 21. • • • • •
  22. 22. BE PREPARED NOT SCARED • • • • •
  23. 23. BE PREPARED NOT SCARED • • • • •
  24. 24. <>myVar:=<>myVar+1
  25. 25. <>myVar:=<>myVar+1 IDLE IDLE
  26. 26. <>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1 IDLE IDLE
  27. 27. <>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1<>myVar:=<>myVar+1IDLEIDLE IDLE
  28. 28. <>myVar:=<>myVar+1 CLEAR SEMAPHORE("myVar") If(Not(Semaphore("myVar";1000))) End if
  29. 29.
  30. 30. • •
  31. 31. • • • - - -
  32. 32. myWorker myWorker
  33. 33. myWorker CALL WORKER("myWorker"; "myMethod";$param) myWorker
  34. 34. myWorker CALL WORKER("myWorker"; "myMethod";$param) myWorker
  35. 35. myWorker CALL WORKER("myWorker"; "myMethod";$param) myWorker you’ve got mail!
  36. 36. myWorker myWorker CALL WORKER("myWorker"; "myMethod";$param)
  37. 37. myWorker myWorker CALL WORKER("myWorker"; "myMethod";$param)
  38. 38. myWorker myWorker myMethod($param) CALL WORKER("myWorker"; "myMethod";$param)
  39. 39. myWorker myWorker CALL WORKER("myWorker"; "myMethod";$param)
  40. 40. BE PREPARED NOT SCARED • • • • •
  41. 41. BE PREPARED NOT SCARED • • • • •
  42. 42.
  43. 43. • •
  44. 44. • • • - - -
  45. 45. myWindow myWindow
  46. 46. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow
  47. 47. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow
  48. 48. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow you’ve got mail!
  49. 49. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow
  50. 50. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow
  51. 51. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow myMethod($param)
  52. 52. myWindow CALL FORM($myWindow; "myMethod";$param) myWindow
  53. 53. Windows Mac
  54. 54. v12 Windows Mac
  55. 55. v12 Windows Mac v13 OD BC
  56. 56. v12 Windows Mac v13 OD BC v15 OD BC
  57. 57. v12 v15 Rx Windows Mac v13 OD BC v15 OD BC
  58. 58. v12 v15 Rx v15 R5 Windows Mac v13 OD BC v15 OD BC
  59. 59. v12 v15 Rx v15 R5 v16 Windows Mac v13 OD BC v15 OD BC
  60. 60.
  61. 61. • •
  62. 62. • • •

×