﻿# V6064\. Suspicious invocation of Thread\.run\(\)\.

Анализатор обнаружил подозрительный прямой вызов Thread\.run\(\)\. Такой запуск потока может ввести в заблуждение\. Когда метод run\(\) объекта Thread вызывается напрямую, все действия в методе run\(\) будут выполняться в текущем потоке, а не вновь созданном\.

Рассмотрим некорректный вариант:

```cpp
private class Foo implements Runnable
{
  @Override
  public void run() {/*...*/}
}

....

Foo foo = new Foo();
new Thread(foo).run();
....
```

В данном примере выполнение тела метода run\(\) будет в текущем потоке\. Так ли задумывалось? Для того, чтобы тело метод run\(\) выполнилось в новом потоке, необходимо использовать метод start\(\)\.

Корректный вариант:

```cpp
private class Foo implements Runnable
{
  @Override
  public void run() {/*...*/}
}

....

Foo foo = new Foo();
new Thread(foo).start();
....
```