var app = angular.module('myapp', []);
app.filter('htmlToPlaintext', function()
{
return function(text)
{
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};
});
<p>{{DetailblogList.description | htmlToPlaintext}}</p>
Почему вы думаете, что вызов getA()
из разных потоков должен создавать разные объекты? Приложение имеет только одну static
область. Таким образом, в этом случае оба потока должны использовать один и тот же объект.
И в вашем примере вы вызываете метод m()
, используя основной поток. Вы должны переопределить метод run()
, чтобы эффективно использовать несколько потоков. Добавьте следующий метод в ваши классы Test1
и Test2
.
public void run() {
m();
}
и удалите следующие строки из вашего метода main
,
t1.m();
t2.m();
Вы звоните m()
в главном потоке. Чтобы вызвать его в отдельном потоке, вам необходимо переопределить метод run()
в ваших классах потоков и вызвать m()
из run()
.
Как только вы исправите это, очень маловероятно, чтобы оба потока вошли в блок одновременно, вплоть до наносекунд. Вы можете попробовать создать множество потоков и циклов выполнения, чтобы увидеть проблемы параллелизма. Но поскольку a
является статическим, «новый» объект быстро перезапишет старый экземпляр.
Посмотрите на этот ответ , чтобы понять синхронизацию в одноэлементной структуре.