• Сигналы и слоты в Qt5

    • Translation
    Qt5 alpha увидел свет. В этой статье я опишу одну из фич, над которыми работал — это новый синтаксис сигналов и слотов.

    Предыдущий синтаксис


    Вот как мы обычно соединяем сигнал и слот:

    connect(sender, SIGNAL(valueChanged(QString,QString)),
            receiver, SLOT(updateValue(QString)) );

    На самом деле макросы SIGNAL and SLOT преобразуют свои аргументы в строки. Затем QObject::connect() сравнит эти строки с данными интроспекции собранными утилитой moc.

    В чем проблема этого синтаксиса?

    Не смотря на то, что в целом все работает хорошо, некоторые неудобства все же есть:
    Читать дальше →
  • Горутины: всё, что вы хотели знать, но боялись спросить

      В этой статье я постараюсь кратко и емко рассказать что такое горутины, когда стоит их использовать, какое отношение они имеют к системным потокам, а так же как работает планировщик.

      Что за горутины?

      Горутина (goroutine) — это функция, выполняющаяся конкурентно с другими горутинами в том же адресном пространстве.

      Запустить горутину очень просто:
      go normalFunc(args...)

      Функция normalFunc(args...) начнет выполняться асинхронно с вызвавшим ее кодом.

      Обратите внимание, горутины очень легковесны. Практически все расходы — это создание стека, который очень невелик, хотя при необходимости может расти.

      Сколько вешать в граммах?

      Чтобы было проще ориентироваться, рассмотрим цифры полученные опытным путем.
      Читать дальше →
    • Go: производительность горутин

      • Translation

      Введение


      В этом посте мы рассмотрим производительность горутин (goroutine). Горутины — это нечто в роде очень дешевых и легковесных потоков. Больше всего, наверное, они похожи на процессы в Erlang.

      Согласно документации мы можем использовать сотни тысяч горутин в наших программах. И цель статьи — проверить и конкретизировать это.
      Читать дальше →
      • +50
      • 11.8k
      • 6