public class LambdaThreadUse01
{
public static void main(String[] args)
{
MyArray myArray = new MyArray(); //다른 곳에 만들어둔 클래스인 MyArray를 매개변수로 가지고 있다.
Thread mythread01 = new Thread(() ->
{
try
{
while (true)
{
boolean go = myArray.push("MyThread01", 100);
if (!go) // if(true)여야만 돌아가고 true=!false // go==false
{
break;
}
}
}
catch (Throwable e) // InterruptedException e
{
e.printStackTrace();
}
});
Thread mythread02 = new Thread(() ->
{
try
{
while (true)
{
boolean go = myArray.push("MyThread02", 100);
if (!go) // if(true)여야만 돌아가고 true=!false // go==false
{
break;
}
}
}
catch (Throwable e) // InterruptedException e
{
e.printStackTrace();
}
});
mythread01.start(); // MyThread01 시작
mythread02.start(); // MyThread02 시작
}
}
람다식 문법을 처음 사용해보았다
멀티쓰레드, 쓰레드 동기화 공부하면서
예제중 한개가 람다식 문법으로 Thread를 작성하는 것이라 사용해보았다
Thread thread = new Thread(() -> { });
굉장히 새로운 문법이다..
17.03.09_01
공부하면서 이 예제가 잘못되었다는 걸 알았다
더 간결해져야했다.
Thread thread = () -> { };
17.03.09_02
Runnable 예제를 작성하면서 느낀건데
위에 예제도 잘못된거 같다
그냥 원래 예로 든게 맞는거같다
공부가 더 필요하다
17.03.09_03
쓰레드를 람다식으로 돌리는 예제를 보았는데
Thread thread = new Thread(() -> {...});
으로 표현되었다.
아직도 확신은 안 선다.
17.03.09_04
와.. 대박 멍청했다
고민할 필요도 없던 문제였다..
Thread안에는 Runnable이 들어가지..
new Runnable이지..
허허.. 왜 new Thread는 안 줄어드는지 고민한거지..
결론 : 기존 예제가 맞다
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
}
});
Thread thread = new Thread(() -> {...});