LINUX.ORG.RU

Сообщения entemophyllon

 

Видимость изменений в Java. Простой вопрос

Предположим есть слудующий код.

Тред 2:

this.surface = new Surface(surf_texture);
// initialized_s - это Object()
synchronized (this.initialized_s) {
    this.initialized_s.notify();
}

Тред 1:

thread.start();
synchronized (thread.initialized_s) {
    while (thread.surface == null) {
        try {thread.initialized_s.wait();} catch (InterruptedException e) {}
    }
}

Насколько я понимаю, нет никаких гарантий, что изменения переменной surface будут когда-нибудь видны. Когда мы вернемся из wait(), мы будем видеть null. Далее (т.к. мы тестируем в цикле) мы зайдем в wait() еще раз. Но т.к. это был настоящий wake-up, вызванный notify(), то второго notify() уже не будет. Насколько я понимаю, далее wait() снимет блокировку, снова переведет тред в сон и мы так и останемся на этом месте.

Вопросы:

1) Как это починить?

2) Хотелось указание на раздел/главу/страницу авторитетного источника, где говорится, что такой-то и такой-то способ точно дает гарантию.

 

entemophyllon
()

Ищу работу

Здравствуйте. Ищу какую-то несложную работу на четверть ставки. Видимо скрипты на питоне, но рассмотрю ваши предложения если есть. Чистого продуктивного времени выходит 2 часа в день (я медленный), в перспективе смогу больше.

Python

  • сейчас его осваиваю, версия только 3.6
  • консольные программы (в т.ч. многопоточные)
  • pip, venv

Python web
Питонными веб-фреймворками не владею. Только пару раз скопипастил что-то в cherrypy, flask под uwsgi (нужна была отвечалка по http), но не разбирался.

PostgreSQL
Есть опыт работы c (мог подзабыть некоторое из этого списка, но с документацией быстро вспомню):

  • материализованные view
  • foreign data wrappers
  • ltree
  • jsonb
  • констрейнты обыкновенные и check-ом что-то ограничивал
  • хранимые процедуры, немного триггеры
  • рекурсивные cte, lateral join, window functions и в таком духе
  • делал полнотекстовый поиск
  • pg_trgrm
  • массивы, сomposite types
  • условно могу explain analyze ...
  • установка на rhel из пакетов; простые настройки ролей типа привилегий, search_path; hba, ident, простые бекапы (pg_dump)
  • постгрес мне интересн

Linux - на уровне пользователя (только CentOS/Fedora)

  • могу установить что-то, подправить конфиги
  • написать простой сервис-юнит systemd
  • пересобрать srpm, внести совсем простые изменения в spec
  • пишу ansible-плейбуки для себя
  • для себя делал md raid (linear, mirror)

SQLite - писал немного скрипты вокруг нее, JSON1, отлавливал жиреющий wal

Опыт работы:

  • 2012-н.в.: не работал в «ИТ», иногда выполнял простые заказы
  • 2007-2012: два места работы (офис) PHP (5.3), ZendFramework 1.x, smarty, Doctrine2, apc; MySQL; Подготовка сервера (nginx, php-fpm, доустановка php extensions, mysqld); Разработка ТЗ, взаимодействие с аутсорс-программистами.
  • 2002-2005: немного фрилансил за деньги (html, css, ssi, php, ajax); делал разное для себя

Также в прошлом был опыт (почти забыто и obsolete, но всё же):

  • CSS, блочная валидная XHTML верстка. Большой опыт с IE6 (кроссбраузерная pixel-perfect верстка). Знаком sass (но только sassс)
  • Клиентская оптимизация графики, консолидация ресурсов (минимизация кол-ва HTTP запросов), устранение блокировок, настройка сервера (кеширование, сжатие)
  • Немного могу в графику (но сейчас нет винды с фотошопом): Доработка, полная или частичная «пересборка» поступивших PSD-макетов; автоматизация средствами Adobe PS, цветокоррекция, несложная ретушь, устранение шума/бандинга и т.п.

Англ.: начальный - читаю нетехн. статьи, полит. новости и пр. слушаю подкасты/радио (30-95%), задаю вопросы в списках рассылки; правда, c грамматикой не очень.

Всегда работал автономно, но готов работать в команде/в подчинении.

М, 1987г.р., техн. обр. 2009, живу в часовой зоне MSK.

licheniz1234@gmail.com

Объявление актуально, если в комментах не указано обратное.

 

entemophyllon
()

RSS подписка на новые темы